[решено] Временное отключение HotKeySet

Ответить
 • Просмотры: 1
Аватара пользователя
sashadeg

[решено] Временное отключение HotKeySet

Сообщение sashadeg »

Нужно чтобы HotKeySet на время приостановили свою деятельность если окно находится НЕ в СВЁРНУТОМ состоянии...

Врядли это возможно, но всётаки решил спросить...



=========================



Исправил...
Аватара пользователя
Creat0R

Re: [решено] Временное отключение HotKeySet

Сообщение Creat0R »

Цитата sashadeg:



Врядли это возможно
[решено] Временное отключение HotKeySet




Возможно ещё как - Нужно проверять в функции хоткея состояние окна WinGetState().



Как это сделать? Очень просто - посмотреть в справке что возвращает WinGetState при свёрнутом окне, и проверить через BitAnd...





Код:

Код: Выделить всё

Func MyHotKeyFunc()
    If Not BitAND(WinGetState($hGUI), тут то, что написано в справке для свёрнутого окна) Then Return ;окно НЕ свёрнуто
    ;тут выполнение кода по хоткею
EndFunc
Аватара пользователя
Creat0R

Re: [решено] Временное отключение HotKeySet

Сообщение Creat0R »

proxy, Ты извини конечно, но код я потёр в твоём посте (если что скажи, код я сохранил в буфер обмена Изображение ) - Причина редактирования:


Цитата:



Пора sashadeg'e учиться пользоваться справкой



Вот так постоянно кидать готовые примеры и решения, это не выход, я бы лично никогда не научился кодить на AutoIt если бы мне вот так давали всё готовое.. хотя иногда на примере лучше объяснить, но это не тот случай.



И кстати, зачем ты в цикле решил проверять состояние окна, можно же ведь в самой функции Изображение




Цитата proxy:



Если для AutoIt окна
[решено] Временное отключение HotKeySet




И это кстати sashadeg, тоже не уточнил, т.ч ждём его ответа.
Аватара пользователя
proxy

Re: [решено] Временное отключение HotKeySet

Сообщение proxy »

Цитата Creat0R:



И кстати, зачем ты в цикле решил проверять состояние окна, можно же ведь в самой функции
[решено] Временное отключение HotKeySet




поспешил, необдумал ))




Цитата Creat0R:



Ты извини конечно, но код я потёр в твоём посте
[решено] Временное отключение HotKeySet




претензий нет - учусь доверять опыту ))




Цитата Creat0R:



Вот так постоянно кидать готовые примеры и решения, это не выход, я бы лично никогда не научился кодить на AutoIt если бы мне вот так давали всё готовое.. хотя иногда на примере лучше объяснить, но это не тот случай.
[решено] Временное отключение HotKeySet




Изображение тут правдо еще один аспект, иногда, интересно ж самому реализовать задачу и конечно же поделиться решением ))
Аватара пользователя
sashadeg

Re: [решено] Временное отключение HotKeySet

Сообщение sashadeg »

Цитата Creat0R:



что возвращает WinGetState при свёрнутом окне
[решено] Временное отключение HotKeySet




Это я знаю, что 16...


Цитата Creat0R:



MyHotKeyFunc()
[решено] Временное отключение HotKeySet




А что это заменяет HotKeySet ??? нифигасе... Изображение


Цитата Creat0R:



;тут выполнение кода по хоткею
[решено] Временное отключение HotKeySet




???




Цитата Creat0R:



ждём его ответа
[решено] Временное отключение HotKeySet




Да для AutoIt окна...



Извините, если что.... Просто я AutoIt с середины февраля этого года начал использовать... а до этого ВООБЩЕ ничего и никакого языка даже мельком не знал... Да и на AutoIt не обратил внимания, еслибы не send()...
Аватара пользователя
Creat0R

Re: [решено] Временное отключение HotKeySet

Сообщение Creat0R »

Цитата proxy:



иногда, интересно ж самому реализовать задачу и конечно же поделиться решением
[решено] Временное отключение HotKeySet




Да, но это же супер тривиальная задача, смысл?




Цитата sashadeg:



А что это заменяет HotKeySet ?
[решено] Временное отключение HotKeySet




Мда... Как всё запущенно... Это функция, которую указывают в HotKeySet, или вы ещё не поняли как работают функции в аутоите?




Цитата sashadeg:



???
[решено] Временное отключение HotKeySet




Что не ясно? Там вместо комментария указываете действие, которые указывали в функции по хоткею.



Да и вообще... судя по сказанному в первом посте:




Цитата sashadeg:



Нужно чтобы HotKeySet не стимулировал нажатия клавиш
[решено] Временное отключение HotKeySet




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



Возможно имелась в виду Send() а не HotKeySet()?






Цитата sashadeg:



я AutoIt с середины февраля этого года начал использовать... а до этого ВООБЩЕ ничего и никакого языка даже мельком не знал
[решено] Временное отключение HotKeySet




Вот теперь вы попали, придётся учить до конца Изображение - И если начали учить недавно, это ещё не значит что для вас не существует справки и прочей внешней информации, кой в ести море!
Аватара пользователя
sashadeg

Re: [решено] Временное отключение HotKeySet

Сообщение sashadeg »

Цитата Creat0R:



Я начинаю сомневаться в том, что вы понимаете для чего сия функция - она не стимулирует нажатия клавиш
[решено] Временное отключение HotKeySet




аааа.... Чёрт!!! простите, я перепутал, просто щас только что с одним парнем разговаривали про AutoIt, про send()... Вот я и збрякал не то...
Цитата Creat0R:



вы ещё не поняли как работают функции в аутоите?
[решено] Временное отключение HotKeySet




Ты прав... (не представляешь себе, как я был рад когда узнал что msgbox возвращает определённые цифры)




Цитата Creat0R:



Вот теперь вы попали
[решено] Временное отключение HotKeySet




Да я знаю... 3 день подряд от компа не отхожу (делаю перерыв на 8 часов, когда на работу ухожу xD) прихожу и опять... за 3 суток спал 9 часов... (подумать только, что я могу делать 3 суток с таким "ОГРОМНЫМ" обьёмом знаний Изображение )



===============

Хватит ко мне на Вы обращаться... ты меня лет на 9-10 старше... Или Вы такой вежливый? Изображение
Аватара пользователя
Creat0R

Re: [решено] Временное отключение HotKeySet

Сообщение Creat0R »

Цитата sashadeg:



Ты прав... (не представляешь себе, как я был рад когда узнал что msgbox возвращает определённые цифры)
[решено] Временное отключение HotKeySet




Я про UDF, пользовательские функции...



По поводу Send... в недавних версиях появилась такая класная функция, называется SendKeepActive(), она предназначена как раз (ну, почти, см. далее) для твоего случая:





Код:

Код: Выделить всё

;Это позволит активировать окно пока необходимо посылать нажатия
SendKeepActive("Заголовок")
While 1
    Send("aaabbbccc")
    Sleep(1000)
WEnd

Но если нужно посылать нажатия только если окно активное минимизировано, то тут как раз и нужна пользовательская функция:





Код:

Код: Выделить всё

;Вызов функции:
;"aaabbbccc" это посылаемы символы
;0 это флаг функции Send()
;а "Заголовок Окна" это... ну оно вроде и так понятно что это :)
_SendEx("aaabbbccc", 0, "Заголовок Окна")
;Этот блок ставим в конец скрипта,
;а то что выше можно дублировать и изменять параметры,
;это и называется вызов заданной функции
Func _SendEx($sKeys, $iFlag=0, $sTitle="[ACTIVE]")
    If Not BitAND(WinGetState($sTitle), 16) Then Return 0
    Send($sKeys, $iFlag)
EndFunc


Цитата sashadeg:



Хватит ко мне на Вы обращаться... ты меня лет на 9-10 старше... Или Вы такой вежливый?
[решено] Временное отключение HotKeySet




Ну во-первых, я и вправду (стараюсь быть Изображение) вежливый. Я просто не знаю сколько кому лет, вот и предпочитаю всех на «Вы» называть, чтобы не гадать Изображение
Аватара пользователя
sashadeg

Re: [решено] Временное отключение HotKeySet

Сообщение sashadeg »

Цитата Creat0R:



нужно посылать нажатия только если окно активное минимизировано
[решено] Временное отключение HotKeySet




Мы друг друга видимо не поняли... Мне send() не нужно... В моей программе кнопки numpad используются как горячии клавиши... Но когда окно программы РАЗВЕРНУТО, то не желательно чтобы они всё ещё были "горячими", а на время приостановили свою деятельность назначенную им HotKeySet



P.S. Я делаю программу которая будет пропечатывать текст заданный в Input'e и закрепленный за определённой клавишей numpad-клавиатуры (с 1 по 9) (как ты понял, здесь будет испольоваться send Изображение )
Ответить

Вернуться в «AutoIt»