Русское сообщество AutoIt

  • Май 20, 2012, 11:36:37 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:


Последняя финальная версия AutoIt: 3.3.8.1 (Скачать)
Последняя Beta версия AutoIt: 3.3.9.4 (Скачать)

Реклама

Автор Тема: _IsPressedEx - Расширенная функция для определения нажатых клавиш  (Прочитано 3016 раз)

0 Пользователей и 1 Гость смотрят эту тему.

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
AutoIt: 3.2.10.0+
Версия: 1.1

Категория: Автоматизация, Хуки

Описание: Расширенная функция _IsPressedEx. Основана на стандартной UDF-функций _IsPressed().

Код/Пример:

Файл: IsPressedEx.zip

История версий:

Источник: _IsPressedEx UDF - Extended _IsPressed function
Автор(ы): G.Sandler (CreatoR)




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.



«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

zlo-kazan [?]

  • Продвинутый
  • ***
  • Репутация: 88
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 343
  • Версия AutoIt: v3.3.6.1
    • Награды
Классная библиотека!  :laugh:

Написал скрипт на её основе который считает eAPM = effective actions per minute. Дословно эффективные действия в минуту. Отличается от APM тем, что не учитывает повторяющиеся клики мыши и нажатия клавиш.
Для геймеров довольно полезная штука.




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Совет. После вызова GetAsyncKeyState() лучше проверять системную ошибку, т.к. эта функция не работает при активации некоторых окон UI (UAC и т.д.).

Код: AutoIt [Выделить]
Func __IsPressed($vkCode)

    Local $Ret = DllCall('user32.dll', 'short', 'GetAsyncKeyState', 'int', $vkCode)

    If (@error) Or ((Not $Ret[0]) And (_WinAPI_GetLastError())) Then
        Return SetError(1, 0, 0)
    EndIf
    Return BitAND($Ret[0], 0x8000)
EndFunc   ;==>__IsPressed




  Записан
Думай, прежде чем говорить.

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Yashied  [?]
Цитата
Совет. После вызова GetAsyncKeyState() лучше проверять системную ошибку
Это ты где нашёл, в библиотеке нет такого. А в оригинальной _IsPressed() проверяется ошибка («If @error Then ...»).




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Это ты где нашёл?

MSDN

А еще, я с этим столкнулся в HotKey UDF. Мы это несколько дней обсуждали на оффициальном форуме с Ascend4nt'ом и KaFu.

А в оригинальной _IsPressed() проверяется ошибка («If @error Then ...»).

Бессмысленно проверять только @error, когда функция и так присутствует во всех поддерживаемых AutoIt'ом версиях Windows. Нужно проверять результат функции.




  Записан

Moonsin [?]

  • Новичок
  • *
  • Репутация: 2
  • Offline Offline
  • Сообщений: 17
  • Версия AutoIt: 3.3.6.1
    • Награды
Библиотека не определяет нажатия на Sleep, Wake Up, Power на клавиатуре. Их нажатия как то можно отслеживать?




  Записан

Zaramot [?]

  • AutoIt Гуру
  • *****
  • Репутация: 456
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 883
  • Версия AutoIt: v3.3.8.1
  • I ♥ AutoIt
    • Награды
Sleep можно:
Код: AutoIt [Выделить]
HotKeySet('{SLEEP}', '_Sleep')

While 1
    Sleep(100)
WEnd

Func _Sleep()
    MsgBox(0, '', '')
EndFunc




  Записан

Moonsin [?]

  • Новичок
  • *
  • Репутация: 2
  • Offline Offline
  • Сообщений: 17
  • Версия AutoIt: 3.3.6.1
    • Награды
Спасибо, работает. А Power и Wake Up никак нельзя?




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
AutoIt Wrapper GUI - Расширенная компиляция скриптов
Инструменты и помощь по AutoIt
Medic84 9 6649 Последний ответ Сентябрь 15, 2010, 21:58:29
от Kaster
BlockInputEx - Расширенная блокировка мышки и клавиатуры
UDF - Пользовательские функции
CreatoR 39 9971 Последний ответ Май 04, 2012, 19:57:49
от CreatoR
Авто нажатие клавиш
Стол заказов
arukaso 11 5433 Последний ответ Июль 26, 2011, 15:14:58
от madmasles
Сочетание клавиш для действия
AutoIt для новичков
Zigmund 2 2045 Последний ответ Октябрь 21, 2009, 20:20:53
от Medic84
Как прикрутить к скрипту "HardDriveInfo.dll" для определения серийника жесткого?
AutoIt для новичков
centaur 11 1936 Последний ответ Март 10, 2010, 00:53:58
от madmasles
[Мышь, клавиатура] Сочитание клавиш
AutoIt для новичков
pumbey 2 1906 Последний ответ Март 11, 2010, 14:07:54
от pumbey
[Автоматизация] Распознания/определения содержания буфера обмена и ввод данных не copy/past'ом
AutoIt для новичков
riever 3 468 Последний ответ Октябрь 23, 2011, 16:12:51
от axlwor
[Баг] Неправильные области определения переменных
Баг-репорты и запросы на новые функции
Kaster 17 1415 Последний ответ Январь 11, 2012, 04:37:11
от madmasles
Использование библиотеки _IsPressedEx
AutoIt для новичков
roman-info01 1 208 Последний ответ Февраль 14, 2012, 14:45:22
от Medic84
[Элементы GUI] Определения видимости окна
AutoIt для новичков
Ganibal95 6 736 Последний ответ Апрель 29, 2012, 02:48:47
от Yashied


Реклама

* Последние сообщения на форуме
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Май 19, 2012, 23:55:37
post Узнать значение возвращаемое функцией javascript
[Автоматизация IE и Web-интерфейса] Viktor1703 Май 19, 2012, 23:25:05
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] sngr Май 19, 2012, 23:06:52
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] Dm666 Май 19, 2012, 22:38:13
post Re: Иконка AutoIt3 для разных Dock-ов
[Графика и творчество в рамках AutoIt] Ganibal95 Май 19, 2012, 22:21:35

* Пользователи онлайн
  • Dot Гостей: 76
  • Dot Скрыт: 0
  • Dot Пользователей: 20
  • Dot Пользователи Online: