Похожие вопросы

Autohotkey для поиска изображений
Как отправить комбинацию клавиш Ctrl+F в Autohotkey
Как использовать фокус ввода / textarea в качестве условия для горячих клавиш
Легко вводить символы Юникода с помощью AutoHotKey?
AutoHotkey - сделать окно оставаться прямо в панели задач
AutoHotKey Запуск Команд Windows
Аутохотки-AutoHotkey - как Blockinput, события mousemove блокировать curson перейти от моей компании Wacom (планшет) стилус
Как поменять местами Alt+PgUp и Alt+PgDn внутри окна mstsc, с autohotkey?
Можно ли вызвать AHK Script из PHP или Javascript - также Как передать переменную в скрипт?
Autohotkey-дважды нажмите комбинацию клавиш, чтобы запустить часть кода Ahk
Флажки производят MsgBox, когда кнопка нажата
AHK: как использовать горячую клавишу в сочетании с GUI
Привязка Shift к x с помощью AutoHotkey
Как добавить метку времени с пользовательским текстом с помощью сочетания клавиш?
AutoHotKey: как заставить скрипт работать только в рамках определенной программы?

Сделать перезагрузку без мигания значка в трее-AutoHotkey скрипт

Я хочу сделать перезагрузка без ПроблескиваяЗначок, на моей системе Windows 10 64 / bit.

есть ли простой скрипт Autohotkey, который я могу использовать.

Я не хочу, если я запустить Перезагрузить Команду, что мой значок AutoHotkey лоток исчезает, а затем в определенное время появится обратно. (и он будет переупорядочен все мои другие иконки в трее на панели задач.)

если запустить скрипт Ahk и Нажмите на клавишу [F1], вы увидите, что я имею в виду.

#SingleInstance force

;if you have Many variables +-1000x and you want to clean them.
;you can use the Reload Command to empty them.
;but i do not want that the System Tray will be Flashing. and it will reordered all my other Tray icons.

f1:: ;Restart script and clear all variables.
reload
return

f2::
a1 := 100
;a.... := ....
a1000 := 100
return


~esc::exitapp

.

кричать об этом не будет замечательно, если вы можете написать АХК скрипт, который можно перезагрузить и игнорировать значок на панели задач, если она уже есть на панели задач зачем кричать Мы хотим, чтобы перезагрузить его снова, или если вы можете использовать команду, что-то вроде этого [ReloadIgnoreTray] или [#ReloadIgnoreTray] так как [#notrayicon]

может быть, создатели, которые сделали сделал Autohotkey может изменить или обновить эту команду перезагрузки, Команда Reload должна только сделать это, сначала посмотрите на имя этого значка в трее, если он существует, а затем игнорировать перезагрузку значка в трее. (единственный вопрос, Можно ли изменить TrayMenus без перезагрузки, что значок в трее)

5
задан Philip Lavour
источник

2 ответов

Если вы хотите сделать перезагрузку без мигания значка в трее.

Вы можете сделать это с небольшим трюком.

вы можете решить эту проблему с помощью (значок внешнего лотка с меню лотка)

попробуйте эти два сценария Ahk, и вы готовы пойти.

нет больше хлопот не должны делать писать много кодовых линий, чтобы очистить все ваши переменные или что-нибудь еще.

  • Пример 1.ahk-это ваш основной сценарий. (Это имеет #Notrayicon команда, чтобы скрыть значок в трее.)

  • Example1Tray.ahk - это внешний скрипт. (если запустить этого автоматический запуск основного скрипта)

Примечание - это только простой пример, чтобы показать вам, что вы можете сделать это.

Пример1.транспортное средство

#Notrayicon
#SingleInstance force

;Click on <esc> key - to exit
;Click on <f1> key - to do an Reload Without Flashing Tray Icon
;Click on <f2> key - to do put the variables
;Click on <f3> key - to show if the variables is be Cleared

;Tip - if you change the Name Example1.ahk into Example2.ahk 
;Then you can use ReplaceAll Function in Notepad - ReplaceAll Example1 to Example2

WriteReg_Example1("Suspend","0")
WriteReg_Example1("Exit","0")

mode=1


loop
{
;----------------
RegRead, x, HKEY_CURRENT_USER,software\Example1,Suspend ; read SuspendValue
if x=1
{
WriteReg_Example1("Suspend","0")
x=0
Suspend
}
;----------------

;----------------
RegRead, x, HKEY_CURRENT_USER,software\Example1,Exit ; read ExitValue
if x=1
{
exitapp
WriteReg_Example1("Exit","0")
x=0
}
;----------------

} ;End Loop

;if you have Many variables +-1000x and you want to clean them.
;you can use the Reload Command to empty them.
;but i do not want that the System Tray will be Flashing. and it will reordered all my other Tray icons.


;----------------------------------
#if mode
f1:: ;Restart script and clear all variables.
reload
return

f2::
a1 := 100
;a.... := ....
a1000 := 100
msgbox a1 = %a1% to a1000 = %a1000%
return

f3::
msgbox a1 = %a1% to a1000 = %a1000%
return


~esc::exitapp
#if
;----------------------------------

;----------------------------------
WriteReg_Example1(KeyName,KeyValue)
{
RegWrite, REG_SZ, HKEY_CURRENT_USER,software\Example1,%KeyName%,%KeyValue%  ;write Registry for External Program
}
;---------------------------------

Example1Tray.транспортное средство

;#Notrayicon
#Persistent
OnExit, DoExitExternal
#SingleInstance force
mode=1

;Tip - if you change the Name Example1.ahk into Example2.ahk 
;Then you can use ReplaceAll Function in Notepad - ReplaceAll Example1 to Example2 and it is done!

WriteReg_Example1("Suspend","0")
WriteReg_Example1("Exit","0")

Menu, Tray, NoStandard ; Remove the Standard Menu items

Menu, Tray, Add , H&elp, DoHelp
Menu, Tray, Add , W&indow Spy, DoWindowSpy
Menu, Tray, Add , S&uspend Script, DoSuspendExternal 
Menu, Tray, Add , E&xit, DoExitExternal 

;----------------
#If WinNotExist Example1.ahk 
{
run Example1.ahk 
}
;----------------

loop
{
} ;End Loop

;----------------
DoHelp:
run C:\Program Files\AutoHotkey\AutoHotkey.chm
return
;----------------

;----------------
DoWindowSpy:
run C:\Program Files\AutoHotkey\AU3_Spy.exe
return
;----------------

;----------------
DoSuspendExternal:
WriteReg_Example1("Suspend","1")
if a=1
{
Menu, Tray, Icon , Shell32.dll, 29, 1
a=0
}else{
Menu, Tray, Icon, Shell32.dll, 132, 1
a=1
}
return
;----------------

;----------------
DoExitExternal:
WriteReg_Example1("Suspend","0")
WriteReg_Example1("Exit","1")
sleep 250
ExitApp
return
;----------------

;----------------------------------
WriteReg_Example1(KeyName,KeyValue)
{
RegWrite, REG_SZ, HKEY_CURRENT_USER,software\Example1,%KeyName%,%KeyValue%  ;write Registry for External Program
}
;----------------------------------

;----------------------------------
#if mode
~esc::
gosub DoExitExternal
return
#if
;----------------------------------
1
отвечен Frank Quardro 2018-01-28 11:55:15
источник

что вы пытаетесь сделать, выполняя перезагрузку?

вы, вероятно, не сможет (легко) изменить умолчанию перезагрузка для перезагрузки командной запеченные в аутохотки-AutoHotkey, но вы можете, вероятно, повторно инициализировать все переменные по мере необходимости путем вызова функции вызова и, возможно, просто добавив ее в трее как "мягкая перезагрузка" вариант, который будет очищать внутренние переменные состояния, которые вы хотели бы очистить.

Если вы пытались закрыть автоматически диалоги и вещи такого рода могут быть немного сложнее.

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

Main:

    Menu, Tray, Add, SoftRestart, myFuncSoftRestart
Return

f1::reload

f2::
    a := 100
    a100 := 100
return    

myFuncSoftRestart() {       ; use this function to clear internal state variables
    a :=""
    a100 := ""
}
1
отвечен JJohnston2 2018-01-24 05:21:15
источник

Другие вопросы autohotkey command-line script