Что нового

переименование запущенного скрипта в трее Windows

JohnWind

Новичок
Сообщения
66
Репутация
0
Доброго времени суток,

написал небольшую утилиту-таймер, которая содержит в себе небольшое окно/интерфейс с выбором времени таймера с последующим окном/интерфейсом - указания к какому объекту этот таймер относится.

данную утилиту мне приходится запускать (скомпилировал в exe) до 3-4 шт. одновременно.

проблема в том, что в трее все иконки имеют одинаковый вид, как и имя запущенного скрипта/утилиты (например ! ! RoC_Timer_v04.exe)... и при необходимости отключить какой-то определённый (из нескольких) таймеров - возникает проблема идентификации: какой процесс для какого объекта был запущен.

вопрос: нет ли какой-либо возможности средствами AutoIT заменить/дополнить тул-тип имени запущенного скрипта чтоб можно было бы как-либо зрительно отличить один таймер от другого?

заранее спасибо.
 

Вложения

  • 0001.png
    0001.png
    22.4 КБ · Просмотры: 1
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,970
Репутация
1,459
Как вариант по имени файла (процесса)
Код:
$aInst = ProcessList(@ScriptName)
Switch $aInst[0][0]
  Case 0
    TraySetToolTip("Не скомпилирован")
    TraySetIcon("Shell32.dll", -1)
  Case 1
    TraySetToolTip("Первый таймер")
    TraySetIcon("Shell32.dll", -12)
  Case 2
    TraySetToolTip("Таймер 2")
    TraySetIcon("Shell32.dll", -13)
  Case 3
    TraySetToolTip("Таймер номер 3")
    TraySetIcon("Shell32.dll", -14)
  Case 4
    TraySetToolTip("Четвёртый и последний таймер")
    TraySetIcon("Shell32.dll", -15)
  Case Else
    TraySetToolTip("5+")
    TraySetIcon("Shell32.dll", -16)
EndSwitch

MsgBox(0, '', $aInst[0][0])


Можно попробовать по заголовку окна
Код:
; $aInst = ProcessList(@ScriptName)
$aInst = WinList("Заголовок окна")
 
Автор
J

JohnWind

Новичок
Сообщения
66
Репутация
0
Как вариант по имени файла (процесса)
Код:
$aInst = ProcessList(@ScriptName)
Switch $aInst[0][0]
  Case 0
    TraySetToolTip("Не скомпилирован")
    TraySetIcon("Shell32.dll", -1)
  Case 1
    TraySetToolTip("Первый таймер")
    TraySetIcon("Shell32.dll", -12)
  Case 2
    TraySetToolTip("Таймер 2")
    TraySetIcon("Shell32.dll", -13)
  Case 3
    TraySetToolTip("Таймер номер 3")
    TraySetIcon("Shell32.dll", -14)
  Case 4
    TraySetToolTip("Четвёртый и последний таймер")
    TraySetIcon("Shell32.dll", -15)
  Case Else
    TraySetToolTip("5+")
    TraySetIcon("Shell32.dll", -16)
EndSwitch

MsgBox(0, '', $aInst[0][0])


Можно попробовать по заголовку окна
Код:
; $aInst = ProcessList(@ScriptName)
$aInst = WinList("Заголовок окна")


спасибо большое
оказалось достаточным при запуске таймера указать TraySetToolTip($aaa) - где $aaa - переменная которая у меня УЖЕ есть, в которой хранятся параметры значений которые выбирались в 2х интерфейсах перед запуском.

надо почаще заглядывать в AutoIT Help перед заданием вопроса ;)

Код:
;~         SetState ()
        GUISetState(@SW_HIDE, $Form1)

$state = $state & ' > 10 mins'
MsgBox (0, "EXIT STATUS", $state, 1)

        TraySetToolTip($state)

        Beep(500, 1000)

        GUISetState(@SW_HIDE, $Form1)

        Sleep (600000)

        Beep(500, 1000)
 
Верх