Что нового

(скрипт) Быстрая активация, по нажатию определенных клавиш

Unix

Новичок
Сообщения
8
Репутация
0
Подскажите пожалуйста
Нужно вот к этому коду, дописать быструю активацию
Код:
$iSecs = 3 ;Секунды в течений которых следует выслать все клавиши
$iNumKeys = 8 ;Число клавиш которое следует высылать

Opt("SendKeyDelay", ($iSecs * 1000) / $iNumKeys)

If WinWaitActive("Element Client") Then
    SendKeepActive("Element Client")

    For $iKey = 1 To $iNumKeys
        Send("{F" & $iKey & "}")
    Next
EndIf

Типа при нажатии CTR + S скрипт включался выполнялся и после выполнееия висел на паузе в трее - до тех пор пока его снова не вывозишь.
 

SET777

Новичок
Сообщения
51
Репутация
3
Так?
Код:
$iSecs = 3 ;Секунды в течений которых следует выслать все клавиши
$iNumKeys = 8 ;Число клавиш которое следует высылать
HotKeySet("^s", "_click")
Opt("SendKeyDelay", ($iSecs * 1000) / $iNumKeys)
While 1
	Sleep(200)
WEnd

Func _click()
	While 1
		If WinWaitActive("Element Client") Then
			SendKeepActive("Element Client")
			For $iKey = 1 To $iNumKeys
				Send("{F" & $iKey & "}")
			Next
			ExitLoop
		EndIf
	WEnd
EndFunc   ;==>_click



Вот сейчас должно работать
 
Автор
U

Unix

Новичок
Сообщения
8
Репутация
0
Сейчас проверю, главное что бы скрипт всегда весел в трее
и при выполнении CTRL+S Он запускался
------------------
Скрипт просто весит в трее и не выполняется при нажатии CTRL+S
Даже когда с трея убираю паузу не выполняется
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
SET777 [?]
А зачем цикл в функций?

WinWaitActive будет ждать до тех пор, пока не появится окно с заданным заголовком, и как только оно появится цикл завершится. Т.ч нет в нём никакого смысла.

Unix
Добавь в начало скрипта:

Код:
Opt("TrayMenuMode", 1)
 
Автор
U

Unix

Новичок
Сообщения
8
Репутация
0
Код:
#RequireAdmin
$iSecs = 3 ;Секунды в течений которых следует выслать все клавиши
$nNumKey = 1 ; С какой клавиши нужно начать отсчет нажатия
$iNumKeys = 8 ;Число клавиш которое следует высылать
;Opt("SendKeyDelay", ($iSecs * 1000) / $iNumKeys) ; Это вообше не понимаю зачем? Если можно обойтись Sleep()

HotKeySet('!{1}', '_Go')

While 1
	Sleep(100)
WEnd

Func _Go()
	;WinActive("Element Client") ; Нахер не нужно!
	For $iKey = $nNumKey To $iNumKeys
		Send("{F" & $iKey & "}")
		Sleep(($iSecs * 1000) / $iNumKeys)
	Next
EndFunc   ;==>_Go


Вот так правильно? Скажи пожалуйста в чем может быть проблема?
все работает супер но начинает с F2 а не с F1
результат F2 и так далее...
 
Верх