1

Тема: AHK: Смена иконок при активном профиле (окне)

Здравствуйте. Вот есть часть скрипта, в котором я пытаюсь реализовать смену иконки в трее при активном "профиле", но к сожалению не получается. Не подскажете что я делаю не так?


k24::Suspend
1::toggle := 1
2::toggle := 2
3::toggle := 3
4::toggle := 4
5::toggle := 5
6::toggle := 6
7::toggle := 7
8::toggle := 8
;9::msgbox % toggle

;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;autocad
;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#If (WinActive("ahk_exe acad.exe"))
^Numpad9::
SendInput, {⌀} 
return
	
;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#If (WinActive("ahk_exe acad.exe") && toggle = 1)

Menu, Tray, Icon, C:\Users\Publipor\Documents\AHK\ICO.dll,1

^Numpad1::
Send {Ctrl Down}{vk48 Down}
KeyWait, Numpad1
Send {Ctrl Up}{vk48 Up}
Return

^Numpad2::
Send {Ctrl Down}{alt Down}{vk48 Down}
KeyWait, alt
Send {Ctrl Up}{alt Up}{vk48 Up}
Return

^Numpad3::
Send {Ctrl Down}{shift Down}{vk48 Down}
KeyWait, shift
Send {Ctrl Up}{shift Up}{vk48 Up}
Return

^Numpad4::
Send {shift Down}{vk48 Down}
KeyWait, shift, Alt 
Send {shift Up}{vk48 Up}
Return

^Numpad6::
Send {Ctrl Down}{alt Down}{shift Down}{vk48 Down}
KeyWait, shift, Alt
Send {Ctrl Up}{alt Up}{shift Up}{vk48 Up} 
Return
return
#If
;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#If (WinActive("ahk_exe acad.exe") && toggle = 2)

Menu, Tray, Icon, C:\Users\Publipor\Documents\AHK\ICO.dll,2

^Numpad1::
Send {Ctrl Down}{vk44 Down}
KeyWait, Numpad1
Send {Ctrl Up}{vk44 Up}
Return

^Numpad2::
Send {Ctrl Down}{alt Down}{vk44 Down}
KeyWait, alt
Send {Ctrl Up}{alt Up}{vk44 Up}
Return

^Numpad3::
Send {Ctrl Down}{shift Down}{vk44 Down}
KeyWait, shift
Send {Ctrl Up}{shift Up}{vk44 Up}
Return

^Numpad4::
Send {Ctrl Down}{alt Down}{vk52 Down}
KeyWait, alt
Send {Ctrl Up}{alt Up}{vk52 Up}
Return

#If

2

Re: AHK: Смена иконок при активном профиле (окне)

Директивы #If предназначены только для создания контекста горячих клавиш. Этот код

Menu, Tray, Icon, C:\Users\Publipor\Documents\AHK\ICO.dll,1

просто не выполняется, так он находится после Return и его ничто не запускает. Меняйте иконку по той же горячей клавише, по которой переключаете профиль.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Смена иконок при активном профиле (окне)

teadrinker
Спасибо за ответ. Не подскажете как именно єто сделать?. Пытался сделать таким образом, но чтоб иконка переключилась, нужно дважды нажимать на клавишу "1".


#If (WinActive("ahk_exe acad.exe") && toggle = 1)

1:: Menu, Tray, Icon, C:\Users\Publipor\Documents\AHK\1.ico

4

Re: AHK: Смена иконок при активном профиле (окне)

1::
toggle := 1
Menu, Tray, Icon, C:\Users\Publipor\Documents\AHK\1.ico
Return

#If WinActive("ahk_exe acad.exe") && toggle = 1

^Numpad1::
Send {Ctrl Down}{vk48 Down}
KeyWait, Numpad1
Send {Ctrl Up}{vk48 Up}
Return

или

1:: toggle := 1

#If WinActive("ahk_exe acad.exe") && toggle = 1

^Numpad1::
Menu, Tray, Icon, C:\Users\Publipor\Documents\AHK\1.ico
Send {Ctrl Down}{vk48 Down}
KeyWait, Numpad1
Send {Ctrl Up}{vk48 Up}
Return

в зависимости от того, что нужно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Смена иконок при активном профиле (окне)

teadrinker
Огромное спасибо за помощь . Скрипт заработал.))