Тема: Существует ли команда проверки наличия иконки в трее?
Существует ли команда проверки наличия иконки в трее?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Существует ли команда проверки наличия иконки в трее?
В AHK такой команды точно нет. А что, у вас бывает такое, что в трее нет ни одной иконки?
В AHK такой команды точно нет. А что, у вас бывает такое, что в трее нет ни одной иконки?
Нет, я имел ввиду проверить есть ли конкретная иконка.
Например: проверяется - если есть, то горячая кнопка в скрипте отсылает одно, если нет такой иконки - другое.
Потому что:
Если закрывается один скрипт и открывается другой, кнопка, вызвавшая этот процесс, новому скрипту отсылает нажатие и, если там что-то назначено, происходит выполнение. Проблему не выходит решить через OnExit задав запуск второго скрипта после закрытия первого, всё равно клавиша, которая вызывает закрытие первого, будет запускать то что на неё назначено во втором, открываемом скрипте.
Проблему можно решить обходным путём при помощи разных извращений.
Я подозревал что прямого пути нет. Но навсякий случай спросил.
Если вопрос по следам этой темы, тогда подход крайне неверный. Знаете, есть выражение «чесать левой рукой правое ухо»? Ваш вариант — это «чесать левой рукой правое ухо, просунув руку между ног». Советую искать способ объединить оба скрипта в один.
Нет, тот вопрос я решил объединением. На данный момент я его ещё подправил так, что крестовина, пока не отпустишь, повторяет действие. Использовал для этого такой приём:
GetKeyState, POV, JoyPOV
#if (POV >= 0)
POV := S
IfInString, POV, %S%
SetTimer, WatchPOV, 100
#if
WatchPOV:
SetKeyDelay 100
Loop
{
GetKeyState, POV, JoyPOV
if POV > 31500
Send, {Up}
else if POV between 0 and 4500
Send, {Up}
else if POV between 4501 and 13500
Send, {Right}
else if POV between 13501 and 22500
Send, {Down}
else if POV between 22500 and 31500
Send, {Left}
else
break
}
Вот весь объединённый скрипт:
#Persistent
Stick1Multiplier = 0.3
Stick2Multiplier = 0.015
Stick1Threshold = 3
Stick2Threshold = 3
InvertYAxis := false
InvertZAxis := false
ButtonLeft = 1
ButtonRight = 3
Stick1Number = 1
Stick2Number = 1
#SingleInstance
Stick1Prefix = %Stick1Number%Joy
Stick2Prefix = %Stick2Number%Joy
Hotkey, %Stick1Prefix%%ButtonLeft%, ButtonLeft
Hotkey, %Stick2Prefix%%ButtonRight%, ButtonRight
Stick1ThresholdUpper := 50 + Stick1Threshold
Stick1ThresholdLower := 50 - Stick1Threshold
if InvertYAxis
YAxisMultiplier = -1
else
YAxisMultiplier = 1
SetTimer, WatchStick1, 10
Stick2ThresholdUpper := 50 + Stick2Threshold
Stick2ThresholdLower := 50 - Stick2Threshold
if InvertZAxis
ZAxisMultiplier = -1
else
ZAxisMultiplier = 1
SetTimer, WatchStick2, 10
GetKeyState, POV, JoyPOV
#if (POV >= 0)
POV := S
IfInString, POV, %S%
SetTimer, WatchPOV, 100
#if
ButtonLeft:
SetMouseDelay, -1
MouseClick, left,,, 1, 0, D
SetTimer, WaitForLeftButtonUp, 10
return
ButtonRight:
SetMouseDelay, -1
MouseClick, right,,, 1, 0, D
SetTimer, WaitForRightButtonUp, 10
return
WaitForLeftButtonUp:
if GetKeyState(Stick1Prefix . ButtonLeft)
return
SetTimer, WaitForLeftButtonUp, off
SetMouseDelay, -1
MouseClick, left,,, 1, 0, U
return
WaitForRightButtonUp:
if GetKeyState(Stick2Prefix . ButtonRight)
return
SetTimer, WaitForRightButtonUp, off
MouseClick, right,,, 1, 0, U
return
WatchStick1:
MouseNeedsToBeMoved := false
SetFormat, float, 03
GetKeyState, joyx, %Stick1Number%JoyX
GetKeyState, joyy, %Stick1Number%JoyY
if joyx > %Stick1ThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaX := joyx - Stick1ThresholdUpper
}
else if joyx < %Stick1ThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaX := joyx - Stick1ThresholdLower
}
else
DeltaX = 0
if joyy > %Stick1ThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaY := joyy - Stick1ThresholdUpper
}
else if joyy < %Stick1ThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaY := joyy - Stick1ThresholdLower
}
else
DeltaY = 0
if MouseNeedsToBeMoved
{
SetMouseDelay, -1
MouseMove, DeltaX * Stick1Multiplier, DeltaY * Stick1Multiplier * YAxisMultiplier, 0, R
}
return
WatchStick2:
MouseNeedsToBeMoved := false
SetFormat, float, 03
GetKeyState, joyr, %Stick2Number%JoyR
GetKeyState, joyz, %Stick2Number%JoyZ
if joyr > %Stick2ThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaX := joyr - Stick2ThresholdUpper
}
else if joyr < %Stick2ThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaX := joyr - Stick2ThresholdLower
}
else
DeltaX = 0
if joyz > %Stick2ThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaY := joyz - Stick2ThresholdUpper
}
else if joyz < %Stick2ThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaY := joyz - Stick2ThresholdLower
}
else
DeltaY = 0
if MouseNeedsToBeMoved
{
SetMouseDelay, -1
MouseMove, DeltaX * Stick2Multiplier, DeltaY * Stick2Multiplier * ZAxisMultiplier, 0, R
}
return
WatchPOV:
SetKeyDelay 100
Loop
{
GetKeyState, POV, JoyPOV
if POV > 31500
Send, {Up}
else if POV between 0 and 4500
Send, {Up}
else if POV between 4501 and 13500
Send, {Right}
else if POV between 13501 and 22500
Send, {Down}
else if POV between 22500 and 31500
Send, {Left}
else
break
}
Но иногда я и правда занимаюсь тем о чём вы сказали, есть такое.
Вобщем, написал так чтобы скрипты переключались на отпускании клавиши.
Joy11::yy:=1
#if yy
Joy1::
KeyWait, Joy1
{
Run, 2.ahk
ExitApp, 1.ahk
}
return
#if
kamenschik, ясно, только цитировать предыдущий пост не нужно.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться