Автор Тема: BlockInputEx - Расширенная блокировка мышки и клавиатуры  (Прочитано 62317 раз)

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

Оффлайн rollin [?]

  • Новичок
  • *
  • Сообщений: 15
  • Репутация: 1
    • Награды
CreatoR

Именно так.
Всю функцию привел для того, чтобы не объяснять долго где внес изменения. Только забыл отметить что именно изменил  :-[

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

Re: BlockInputEx - Расширенная блокировка мышки и клавиатуры
« Ответ #60 Отправлен: Июль 11, 2013, 11:10:19 »

Оффлайн Yegorich_555 [?]

  • Новичок
  • *
  • Сообщений: 20
  • Репутация: 0
  • Пол: Мужской
    • Награды
Всем привет. Вылезла проблемка при блокировании клавиатуры и мыши в сочетании с горячими клавишами:
Код: AutoIt [Выделить]
  #include <BlockInputEx.au3>
HotKeySet("+{F1}", "Lock")
HotKeySet("+{F2}", "UnLock")

Func Lock()
 _BlockInputEx(1, "0x10|{F2}")
EndFunc

Func UnLock()
  _BlockInputEx(0)
EndFunc

While 1
    Sleep(100)
WEnd
 

Сочетание клавиш Shift+F1 блокирует все, кроме двух клавиш Shift и F2. Соответственно Shift+F2 разблокирует все. Но...когда все заблокировано при нажатии клавиши F2 происходит разблокировка, но при этом действия и буквы выводит как будто при зажатом Shift. И так происходит пока не нажать Shift+F2. Такая ситуация проверена с разными сочетаниями клавиш...Как решить эту проблему?
Использую BlockInputEx_UDF_1.8 и autoit-v3.3.10.2 на Win7 x32 :)
« Последнее редактирование: Март 07, 2014, 17:17:32 от Yegorich_555 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Yegorich_555  [?]
Цитировать
Использую BlockInputEx_UDF_1.8 и autoit-v3.3.10.2 на Win7 x32
На этой версии AutoIt библиотека не тестировалась...


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


AutoIt is simple, subtle, elegant.


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


Мои работы

Оффлайн Yegorich_555 [?]

  • Новичок
  • *
  • Сообщений: 20
  • Репутация: 0
  • Пол: Мужской
    • Награды
Товарищ rollin подсказал решение, которое уже проверено и работает:
Проблема в логике обработки клавиш Shift - функция Unlock() вызывается из-за того что Shift остается в зажатом состоянии.
Код: AutoIt [Выделить]
HotKeySet("+{F1}", "Lock")

- срабатывает при нажатии любого Shift, далее BlockInputEx() блокирует все сообщения кроме универсального кода нажатия Shift (0х10) - в этот момент физически клавиша еще не отжата и сообщения о ее отжатии (зависящее от того какая это клавиша - левая или правая) игнорируются.
Блокировку следует производить так:
Код: AutoIt [Выделить]
_BlockInputEx(1, "{F2}|{LSHIFT}|{RSHIFT}")


Спасибо всем помогающим мне людям. Я написал простую программку для блокирования клавиатуры и мыши горячими клавишами:
Shift+F1 - блокируем клавиатуру и мышь
Shift+F2 - разблокирует клавиатуру и мышь
Shift+ё - закрывает программу (возможно только при разблокированной клавиатуре).
Программка все время висит в трее и перехватывает выше приведенные сочетания клавиш. Это может пригодится для защиты компа от детей и не только. Зачастую садишь мультики смотреть, а эти "2-х летние программисты" вечно что-нибудь нажмут)
Прикрепляю исходник и вот ссылка на exe файл. Может кому-то и пригодиться
Блокировка мыши и клавиатуры.exe
Блокировка мыши и клавиатуры.au3

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

Re: BlockInputEx - Расширенная блокировка мышки и клавиатуры
« Ответ #63 Отправлен: Март 13, 2014, 12:25:17 »

Оффлайн be4hoctb [?]

  • Новичок
  • *
  • Сообщений: 38
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Как  правильно сделать чтобы при блокировке мышки продолжала работать функция по перемещению мышки вот пример

(нажмите для показа/скрытия)

Но мышка не блокируется, пользователь может её перемещать.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
be4hoctb
У меня всё работает.

Оффлайн reset86 [?]

  • Новичок
  • *
  • Сообщений: 47
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Создал тему Как заблокировать зум по ctrl колесико мыши в определенном окне?, в общем решения не нашлось (я хотел тему удалить, но нельзя).

Придумал вот такой вариант, на BlockInputEx. Вроде работает как надо, но постоянно происходит ошибка (рандомно по времени и условию) курсор начинает тормозить и скрипт завершает работу, в консоле никакой ошибки не появляется, просто скрипт закрывается и все. Путем экспериментов (подсунул в условие ToolTip и убрал _BlockInputEx), понял что проблема в BlockInputEx.
Что я делаю не так или возможно это баг?

Код: AutoIt [Выделить]
#include <BlockInputEx.au3>
$dll = DllOpen("user32.dll")
; $hWnd = Нужное мне окно
Local $bDown = False, $bUp = True, $IsPressed
While 1
$IsPressed = _IsPressed("11", $dll)
If $IsPressed And Not $bDown Then
$bDown = True
$bUp = False
_BlockInputEx(1,'','{MWSCROLL}|{+}|{-}', $hWnd)
ElseIf Not $IsPressed And Not $bUp Then
$bDown = False
$bUp = True
_BlockInputEx(0)
EndIf
WEnd
DllClose($dll)



Добавлено: Март 01, 2017, 03:19:53
Ошибка есть - 1073740771 и она появляется во всех других подобных скриптах, где происходит блокировка функций мыши. Win 10 64, Autoit 3.3.14.2.
« Последнее редактирование: Март 01, 2017, 03:19:53 от reset86, Причина: Объединение сообщений »

Оффлайн cdjsend [?]

  • Новичок
  • *
  • Сообщений: 40
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
ребят подскажите как заблокировать нажатия клавиш и кликов мышки в определенном окне найденном по классу или заголовку ?

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

Re: BlockInputEx - Расширенная блокировка мышки и клавиатуры
« Ответ #67 Отправлен: Апрель 04, 2018, 10:34:43 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
9 Ответов
13007 Просмотров
Последний ответ Май 20, 2010, 17:51:50
от Detka.i.alex
11 Ответов
6735 Просмотров
Последний ответ Октябрь 12, 2017, 17:11:51
от Tyr
2 Ответов
2809 Просмотров
Последний ответ Ноябрь 14, 2012, 17:20:51
от cthutq
1 Ответов
1810 Просмотров
Последний ответ Апрель 13, 2014, 16:35:59
от madmasles
15 Ответов
4830 Просмотров
Последний ответ Декабрь 03, 2014, 10:45:02
от be4hoctb
0 Ответов
1784 Просмотров
Последний ответ Май 19, 2015, 08:56:36
от jslby
0 Ответов
1124 Просмотров
Последний ответ Май 19, 2015, 10:28:18
от Yashied
11 Ответов
2369 Просмотров
Последний ответ Апрель 26, 2016, 16:25:05
от Vovsla
2 Ответов
582 Просмотров
Последний ответ Сентябрь 01, 2017, 11:50:23
от gerkuless
6 Ответов
586 Просмотров
Последний ответ Февраль 08, 2018, 17:08:29
от yl3d