Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Перехват нажатия всех клавиш

Ответить
Настройки темы
Перехват нажатия всех клавиш

Новый участник


Сообщения: 13
Благодарности: 1

Профиль | Отправить PM | Цитировать


Делаю скрипт, на гуе которого присутствуют только две метки (текстовые пояснения о проходящем этапе).
Гуя должна реагировать на клавишу Esc - это выход из скрипта, и на все остальные клавиши одинаково - это переход к следующему этапу выполнения скрипта.
С Esc все понятно - в цикле отслеживаем $GUI_EVENT_CLOSE, но вот как быть с нажатиями на все остальные клавиши??

Отправлено: 21:13, 28-06-2011

 

Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3054
Благодарности: 1008

Профиль | Сайт | Отправить PM | Цитировать


Используй _IsPressedEx:

Код: Выделить весь код
#include <IsPressedEx.au3>

If _IsPressedEx("[:ALLKEYS:]") Then
    _NextStep()
EndIf

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 00:21, 29-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для TERMINAL

Ветеран


Сообщения: 768
Благодарности: 28

Профиль | Отправить PM | Цитировать


Creat0R, а как сделать чтобы через ToolTip нажатые клавиши выводились ? (неполучается...)

-------
Автоматизация прежде всего....


Отправлено: 17:26, 25-07-2011 | #3


Аватара для madmasles

Ветеран


Сообщения: 815
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата TERMINAL:
а как сделать чтобы через ToolTip нажатые клавиши выводились »
Попробуйте так:
Код: Выделить весь код
#include <IsPressedEx.au3>
#include <WinAPIEx.au3>;http://autoit-script.ru/index.php/topic,47.0.html

Opt('MustDeclareVars', 1)

HotKeySet('{Esc}', '_Quit')

Global $fTimeOld, $fTime, $sPressed, $iRet, $iTime

AdlibRegister('_Show', 1000)
$iTime = TimerInit()
While 1
    $iRet = _IsPressedEx('[:ALLKEYS:]')
    If $iRet Then
        $fTime = Not $fTime
        If StringInStr(__KeyGetType($iRet, 0), 'mouse') Then
            $sPressed = 'Mouse (' & __KeyGetType($iRet, 0) & ')'
        Else
            $sPressed = 'Key (' & __KeyGetType($iRet, 0) & ')'
        EndIf
    EndIf
    If $fTimeOld <> $fTime Then
        $fTimeOld = $fTime
        $iTime = TimerInit()
    EndIf
    Sleep(10)
WEnd

Func _Show()
    If $sPressed Then
        ToolTip('Прошло после последнего нажатия: ' & _WinAPI_StrFromTimeInterval(TimerDiff($iTime)) & @LF & 'Нажимали: ' & _
                $sPressed & @LF & @LF & 'Совсем ничего не делали: ' & _WinAPI_StrFromTimeInterval(_WinAPI_GetIdleTime()), 0, 0)
    Else
        ToolTip('Ничего не нажимали: ' & _WinAPI_StrFromTimeInterval(TimerDiff($iTime)) & @LF & @LF & _
                'Совсем ничего не делали: ' & _WinAPI_StrFromTimeInterval(_WinAPI_GetIdleTime()), 0, 0)
    EndIf
EndFunc   ;==>_Show

Func _Quit()
    Exit
EndFunc   ;==>_Quit

Отправлено: 17:56, 25-07-2011 | #4


Аватара для TERMINAL

Ветеран


Сообщения: 768
Благодарности: 28

Профиль | Отправить PM | Цитировать


madmasles, Немогу побороть в твоём скрипте ошибку Duplicate function name.:Func _Show() :
Цитата:
>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\tets.au3" /autoit3dir "C:\Program Files\AutoIt3" /UserParams
+>08:50:22 Starting AutoIt3Wrapper v.2.0.1.24 Environment(Language:0419 Keyboard:00000409 OS:WIN_XP/Service Pack 3 CPU:X64 OS:X86)
>Running AU3Check (1.54.19.0) from:C:\Program Files\AutoIt3
C:\tets.au3(29,13) : ERROR: _Show() already defined.
Func _Show()
~~~~~~~~~~~~^
C:\tets.au3(39,13) : ERROR: _Quit() already defined.
Func _Quit()
~~~~~~~~~~~~^

C:\tets.au3 - 2 error(s), 0 warning(s)
!>08:50:23 AU3Check ended.rc:2
>Running3.3.6.1):C:\Program Files\AutoIt3\autoit3.exe "C:\tets.au3"
C:\tets.au3 (29) : ==> Duplicate function name.:
Func _Show()

->08:50:25 AutoIT3.exe ended.rc:1
>Exit code: 1 Time: 4.273
всё, СУПЕР, списибо-порешал ошибку, но вопрос теперь другой, а возможно ли чтобы показывало польшие и маленькие буквы-на данный момент только большие выводятся и нет различия между русскими и английскими буквами?

-------
Автоматизация прежде всего....


Последний раз редактировалось TERMINAL, 28-07-2011 в 10:41.


Отправлено: 10:24, 28-07-2011 | #5


Аватара для madmasles

Ветеран


Сообщения: 815
Благодарности: 353

Профиль | Отправить PM | Цитировать


TERMINAL,
А зачем Вам клавиатурный шпион?

Отправлено: 14:06, 28-07-2011 | #6


Аватара для TERMINAL

Ветеран


Сообщения: 768
Благодарности: 28

Профиль | Отправить PM | Цитировать


madmasles, )) у меня уже есть один и довольно неплохой, но этот вариант мне кажется намного лучше в работе...
Клавиатурный шпион ставлю к себе в терминальную сессию...при входе в терминал у меня есть 3 секунды чтобы набрать на клавиатуре пароль-если пароль не верен или ввобще не вводился-отсылается мне письмо на почту о несанкционированном входе в терминальную сессию. Тоесть получается двойная защита, при входе на сервак и на самом сервере.

-------
Автоматизация прежде всего....


Отправлено: 11:47, 29-07-2011 | #7


Аватара для madmasles

Ветеран


Сообщения: 815
Благодарности: 353

Профиль | Отправить PM | Цитировать


TERMINAL,
*click*

Отправлено: 11:08, 30-07-2011 | #8


Аватара для TERMINAL

Ветеран


Сообщения: 768
Благодарности: 28

Профиль | Отправить PM | Цитировать


madmasles, страница ошибку выдаёт...

-------
Автоматизация прежде всего....


Отправлено: 14:59, 01-08-2011 | #9


Аватара для madmasles

Ветеран


Сообщения: 815
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата TERMINAL:
страница ошибку выдаёт »

Последний раз редактировалось madmasles, 13-08-2014 в 08:44.


Отправлено: 18:02, 01-08-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Перехват нажатия всех клавиш

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Автоматизация нажатия клавиш Tonny_Bennet AutoIt 18 29-01-2011 14:47
Разное - AutoIt v3 глобальный перехват нажатия клавиши мыши DanteeZ AutoIt 0 30-11-2010 22:57
.NET - [решено] C#. Перехват нажатия Enter Delirium Программирование и базы данных 4 27-02-2010 11:41
Перехват нажатия кнопки в чужом приложении SASHA 333 Программирование и базы данных 5 13-01-2005 18:31
Двойные нажатия клавиш ivank Железо в Linux 8 09-06-2003 09:24




 
Переход