Используется BlockInputEx 1.8 в среде autoit 3.3.14.3 + SCiTE 17.224.935.0.
ОС: Windows 10 x64 1709 в виртуальной машине vmware.
Свои проблемы я свёл вот в такой незамысловатый скрипт:
Вообщем - ничего особого: 20 раз по приведённому алгоритму в среде Windows 10 открываем папку C:\Temp и потом открываем её свойства. На время сего волшебного действия блокируем любой ввод. В случае проблем оставляем для себя возможность по ESC блокировку отключить. Если ничего не делать или делать вяло, то такая блокировка работает и реально помогает. Но если я, запустив скрипт, буду истошно по какому-то свободному участку рабочего стола молотить правой кнопкой мыши, то покажется контекстное меню! Т.е. иногда происходит что-то этакое, что фильтрация действий клавиатуры или мыши не срабатывает! Методом тыка установил, что на это сильное слияние оказывает наличие WinActivate в коде. Но я не разработчик я не понимаю должно это так быть или нет, т.е. такое влияние объяснимо в т.з. алгоритма функции или нет. По моему, пользовательскому разумению, такого быть не должно и это баг, а для моей программы - вообще уязвимость в некотором роде, так как если пользователь сделает что-то в неудачное время, то моя программа запортит всю систему и лучше её тогда вообще не делать)
Большая просьба - может кто-то проверить?
Если это подтвердится, то надо как-то с разработчиком связать что ли - функция-то реально ведь хорошая и полезная.
ОС: Windows 10 x64 1709 в виртуальной машине vmware.
Свои проблемы я свёл вот в такой незамысловатый скрипт:
Код:
#include "BlockInputEx.au3"
HotKeySet("{ESC}", "BlockOff_Func")
Local $cnt
$cnt = 0
_BlockInputEx(1, "{ESC}")
While 1
Run("explorer.exe C:\Temp")
WinWait("Temp")
WinActivate("Temp")
Send ("!h", 0)
Send ("!pr", 0)
Send("{ENTER}")
WinWait("Свойства: Temp")
WinActivate("Свойства: Temp")
Sleep(100)
$cnt = $cnt + 1
If ($cnt = 20) Then
ExitLoop
EndIf
WEnd
_BlockInputEx(0)
Exit
Func BlockOff_Func()
_BlockInputEx(0)
EndFunc
Вообщем - ничего особого: 20 раз по приведённому алгоритму в среде Windows 10 открываем папку C:\Temp и потом открываем её свойства. На время сего волшебного действия блокируем любой ввод. В случае проблем оставляем для себя возможность по ESC блокировку отключить. Если ничего не делать или делать вяло, то такая блокировка работает и реально помогает. Но если я, запустив скрипт, буду истошно по какому-то свободному участку рабочего стола молотить правой кнопкой мыши, то покажется контекстное меню! Т.е. иногда происходит что-то этакое, что фильтрация действий клавиатуры или мыши не срабатывает! Методом тыка установил, что на это сильное слияние оказывает наличие WinActivate в коде. Но я не разработчик я не понимаю должно это так быть или нет, т.е. такое влияние объяснимо в т.з. алгоритма функции или нет. По моему, пользовательскому разумению, такого быть не должно и это баг, а для моей программы - вообще уязвимость в некотором роде, так как если пользователь сделает что-то в неудачное время, то моя программа запортит всю систему и лучше её тогда вообще не делать)
Большая просьба - может кто-то проверить?
Если это подтвердится, то надо как-то с разработчиком связать что ли - функция-то реально ведь хорошая и полезная.