#scripting #windows-10 #autohotkey
#сценарии #windows-10 #автоотключение
Вопрос:
Я немного погуглил, но не смог найти, как это сделать. Мне нужен пользовательский значок, когда скрипт приостановлен. Я знаю, как изменить его нажатием клавиши, но мне нужна такая же функциональность, как при приостановке его щелчком правой мыши в системном трее. При выполнении этого стандартного AHK значок будет иметь красный фон, если приостановлен, и он изменит букву на «S», если приостановлен. Моему сценарию необходимо изменить пользовательский значок, когда он приостановлен, когда вы щелкаете правой кнопкой мыши по значку в трее и приостанавливаете его. Активация нажатием клавиши не требуется, в конечном итоге скрипту необходимо определить, когда я приостанавливаю / возобновляю его, и изменить на другие пользовательские значки.
Ответ №1:
Значок в трее можно изменить в любое время, поэтому вы можете сделать это перед приостановкой и вернуть его в обычное состояние, когда вы отменяете приостановку сценария, вот так:
; start of script
Menu, Tray, Icon, normal.ico
; pause icon
Menu, Tray, Icon, paused.ico
Pause, On
; return to normal
Menu, Tray, Icon, normal.ico
Pause, Off
Смотрите https://www.autohotkey.com/docs/commands/Menu.htm#Icon
Редактировать: создайте свое собственное меню в трее, очень простой код, который вам нужно развернуть, чтобы включить / выключить его, просто для иллюстрации
Menu, Tray, Icon, normal.ico, , 1
Menu, tray, NoStandard ; removes edit, pause, reload etc
; other menu options
Menu, tray, Add, amp;Suspend Hotkeys , MenuHandler
Menu, tray, Icon,amp;Suspend Hotkeys , %A_AhkPath%, 3 ; default suspend icon
Menu, tray, Add, amp;Pause Script , MenuHandler
Menu, tray, Icon,amp;Pause Script , %A_AhkPath%, 4 ; default pause icon
;
MenuHandler:
;
If (A_ThisMenuItem = "amp;Pause Script")
{
Menu, Tray, Icon, paused.ico
Pause
Return
}
Комментарии:
1. Да, но значок должен меняться, когда я нажимаю «приостановить сценарий» на панели задач.
2. Вы заменяете меню в трее своим собственным меню и собственной командой pause, таким образом, вы переходите к ярлыку «Pause:» или обрабатываете его в menuhandler: label в вашем скрипте, где вы меняете значок, а затем приостанавливаете. Меню действует как переключатель для его включения / выключения, и вы можете отслеживать его состояние с помощью переменной. Смотрите редактирование выше.
3. В том-то и дело, что нет команды приостановки. Я просто хочу щелкнуть правой кнопкой мыши значок на панели задач, и когда я нажимаю паузу в контекстном меню (на значке, на панели задач), значок должен измениться.
4. Я не думаю, что вы можете (легко) изменить это меню, но это было возможно (кажется) в Windows 7 с дополнительным кодом 1. сообщение на форуме пример здесь autohotkey.com/board/topic/76485-jumplist-library-for-windows-7 и 2. библиотека, которая вам нужна (я думаю) github.com/rshipp/ahk-libs/blob/master/JumpList/JumpList.ahk — возможно, было бы проще использовать меню в трее или просто настроить горячую клавишу для этого