1

Тема: AHK: Замена стандартных иконок на свои

Menu, Tray, Icon, Путь к файлу\иконка.ico, 1

Меняет стандартную иконку активного скрипта в трее на выбранную.
А как поменять остальные иконки?
Иконку скрипта поставленного на паузу, обе suspend иконки и иконку скомпилированного скрипта в проводнике.

2 (изменено: panamaboot, 2012-02-10 01:11:50)

Re: AHK: Замена стандартных иконок на свои

Мне тоже интересно, возможно ли это? Даже при компиляции в exe прогой AHK2exe  можно поменять только главную иконку(отоброжается в трее при работе скрипта,в проводниках как иконка exe файла) , а иконки  pause и suspend остаються неизменными!

Не знаю, не умею, но быстро учусь!

3

Re: AHK: Замена стандартных иконок на свои

У меня так получилось:

Menu, Tray, Icon, Shell32.dll, 44

F10:: Pause, % Freeze(1)
F11:: Suspend, % Freeze(0)
   
Freeze(var)
{
   static
   if var
      Menu, Tray, Icon, Shell32.dll, % (i := !i) ? 28 : 44, 1
   Else
      Menu, Tray, Icon, Shell32.dll, % (k := !k) ? 45 : i ? 28 : 44, 1
}

При компиляции иконку можно задать.

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

4 (изменено: creature.ws, 2012-02-10 02:04:15)

Re: AHK: Замена стандартных иконок на свои

[AHK_L] fincs' scripted Ahk2Exe rewrite (with GUI) - r3
github

Reshacker

5 (изменено: Мпэт, 2012-02-10 07:47:55)

Re: AHK: Замена стандартных иконок на свои

teadrinker пишет:

У меня так получилось:

Menu, Tray, Icon, Shell32.dll, 44

F10:: Pause, % Freeze(1)
F11:: Suspend, % Freeze(0)
   
Freeze(var)
{
   static
   if var
      Menu, Tray, Icon, Shell32.dll, % (i := !i) ? 28 : 44, 1
   Else
      Menu, Tray, Icon, Shell32.dll, % (k := !k) ? 45 : i ? 28 : 44, 1
}

При компиляции иконку можно задать.

Сразу не разобрался как, но работает.
Но срабатывает только если ставить на паузу с горячей клавиши.
и если поставить паузу вручную, а потом продолжить пользоваться горячими кнопками, иконки меняются местами.

P.S. Но из этого примера я понял, что можно менять иконку самого скрипта в трее в зависимости от того, что он делает.

Menu, Tray, Icon, Shell32.dll, 44

F10::
Menu, Tray, Icon, Shell32.dll, 33
Send, Вася Пупкин
Menu, Tray, Icon, Shell32.dll, 44
Return

F11::
Menu, Tray, Icon, Shell32.dll, 22
Send, Петя Васечкин
Menu, Tray, Icon, Shell32.dll, 44
Return

6

Re: AHK: Замена стандартных иконок на свои

спасибо, но я по нерусски не понимаю

7

Re: AHK: Замена стандартных иконок на свои

teadrinker пишет:

При компиляции иконку можно задать.

Спасибо, разобрался. Я всегда компилировал с контекстного меню файла, где всегда стандартная иконка.

8

Re: AHK: Замена стандартных иконок на свои

Мпэт пишет:

Но срабатывает только если ставить на паузу с горячей клавиши.
и если поставить паузу вручную, а потом продолжить пользоваться горячими кнопками, иконки меняются местами.

Можно стандартное меню в трее заменить на своё, которое будет работать, используя указанный алгоритм.

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

9

Re: AHK: Замена стандартных иконок на свои

Menu, Tray, NoStandard
Menu, Tray, Icon, shell32.dll, 44
Menu, Tray, Tip, InWork
Menu, Tray, Add, &Pause - On, Action
Menu, Tray, Add
Menu, Tray, Add, &Exit, ExitScript

Loop
{
   ToolTip, % A_Hour ":"A_Min "."A_Sec
   Sleep, 250
}
Return

Action:
   Menu, Tray, Tip, % (IsPaused:=!IsPaused) ? "OnPause":"InWork"
   Menu, Tray, Icon, shell32.dll, % IsPaused ? 28:44, 1
   Menu, Tray, Rename, % "&Pause - O"(!IsPaused ? "ff":"n")
                     , % "&Pause - O"(!IsPaused ? "n":"ff")
   ToolTip
   Pause
   Return

ExitScript:
   ExitApp

10

Re: AHK: Замена стандартных иконок на свои

OFF: по поводу темы  Sin
Мпэт, тебе бы на ТВ надо пойти, в шоу экстрасенсов. Успех будет обеспечен, раз лучше ТС знаешь, что он хотел. Вообще-то он поблагодарил меня.

P.S. Если хочешь, чтоб отвечали на твои личные сообщения через форум, будь добр, включи такую возможность в настройках.

11 (изменено: Мпэт, 2012-02-10 20:59:27)

Re: AHK: Замена стандартных иконок на свои

OFF

Irbis пишет:

OFF: по поводу темы  Sin
Мпэт, тебе бы на ТВ надо пойти, в шоу экстрасенсов. Успех будет обеспечен, раз лучше ТС знаешь, что он хотел. Вообще-то он поблагодарил меня.

P.S. Если хочешь, чтоб отвечали на твои личные сообщения через форум, будь добр, включи такую возможность в настройках.

Никаких экстрасенсорных возможностей у меня нет просто я стараюсь внимательно читать то, что люди пишут

Sin пишет:

что бы после каждого нажатия ЛКМ (LButton), сразу же происходило нажатие клавиши "Q".

Irbis пишет:

LButton::  Send Q

и если ты не заметил, там написано "После", а не "Вместо".
Я тебе просто написал нормально, чтоб ты исправил немного и всё, а ты начинаешь наезжать на меня.
Я бы не хотел оказаться на месте того парня. Может поэтому он и не смог зайти, чтоб исправить название темы, что у него не работает левая кнопка мыши.

P.S. Админы и модеры - сорри за оффтоп.

12

Re: AHK: Замена стандартных иконок на свои

Grey пишет:
Menu, Tray, NoStandard
Menu, Tray, Icon, shell32.dll, 44
Menu, Tray, Tip, InWork
Menu, Tray, Add, &Pause - On, Action
Menu, Tray, Add
Menu, Tray, Add, &Exit, ExitScript

Loop
{
   ToolTip, % A_Hour ":"A_Min "."A_Sec
   Sleep, 250
}
Return

Action:
   Menu, Tray, Tip, % (IsPaused:=!IsPaused) ? "OnPause":"InWork"
   Menu, Tray, Icon, shell32.dll, % IsPaused ? 28:44, 1
   Menu, Tray, Rename, % "&Pause - O"(!IsPaused ? "ff":"n")
                     , % "&Pause - O"(!IsPaused ? "n":"ff")
   ToolTip
   Pause
   Return

ExitScript:
   ExitApp

Это всё очень муторно. Но как говорится, везде надо искать плюсы
Часы пришлись очень по душе. Спасибо.
Написал даже скриптик под них.

i:=0
 
Loop
{
   if(i=1)
   {
   ToolTip, % A_Hour ":"A_Min "."A_Sec
   Sleep, 250
   }
   if(i=0)
   {
   ToolTip
   Sleep, 250
   }   
}
Return


Esc::pause            ;замораживает часы
F1:: gosub, FF1     ;включает часы
F2:: gosub, FF2     ;выключает часы

FF1:
i:=1
Return
FF2:
i:=0
Return

Очень удобно для видео-скринов использовать

13

Re: AHK: Замена стандартных иконок на свои

Мпэт пишет:

Это всё очень муторно.

Отнюдь. Это просто пример, того как можно использовать подобный подход со сменой иконок из контекстного меню скрипта.

Мпэт пишет:

Часы пришлись очень по душе.

Ну, как бы этот цикл с  информацией был просто для отображения действий связанных с командой Pause.

14

Re: AHK: Замена стандартных иконок на свои

Мпэт пишет:

...Никаких экстрасенсорных возможностей у меня нет просто я стараюсь внимательно читать то, что люди пишут...

Если бы ты внимательно читал, то наверняка заметил бы, что человек написал положительный отзыв после моего сообщения, то есть с его ЛКМ все в порядке.
К тому же, если бы ты читал ещё более внимательно, то заметил бы, что писал он с работы, а поправить собирался из дома. Если бы у него не хватило ума закрыть скрипт через контекстное меню в трее (где ЛКМ прекрасно работает) или через диспетчер задач, то вечером наверняка и заголовок его темы был бы поправлен, и новый пост по поводу неработающей ЛКМ появился бы. Скорее всего, человек получил, что хотел, на этом его активность иссякла.

   В общем, считаю, что наш диалог неконструктивен, можешь оставаться при своем мненинии, общение на этом заканчиваю. А тебе желаю и впредь оставаться таким же внимательным.

15

Re: AHK: Замена стандартных иконок на свои

Мпэт пишет:

...
Menu, Tray, Icon, shell32.dll, % IsPaused ? 28:44, 1
...

Как изменить эту строку чтобы срабатывала смена иконки при прямом указании пути?
допустим пути короткие:
InWork.ico
и
Pause.ico
Спасибо за помощь!

16

Re: AHK: Замена стандартных иконок на свои

Menu, Tray, NoStandard
Menu, Tray, Icon, InWork.ico
Menu, Tray, Tip, InWork
Menu, Tray, Add, &Pause - On, Action
Menu, Tray, Add
Menu, Tray, Add, &Exit, ExitScript

Loop
{
   ToolTip, % A_Hour ":"A_Min "."A_Sec
   Sleep, 150
}
Return

Action:
   Menu, Tray, Tip, % (IsPaused:=!IsPaused) ? "OnPause":"InWork"
   Menu, Tray, Icon,  % IsPaused ? "Pause.ico":"InWork.ico",, 1
   Menu, Tray, Rename, % "&Pause - O"(!IsPaused ? "ff":"n")
                     , % "&Pause - O"(!IsPaused ? "n":"ff")
   ToolTip
   Pause
   Return

ExitScript:
   ExitApp

17

Re: AHK: Замена стандартных иконок на свои

Ох, не с 1 раза, но получилось. Спасибо за подробные объяснения:D