Есть 2 скрипта. В скрипте №1 никаких проблем не возникает. А в скрипте №2 если двигать мышкой в то время блокировки, то при разблокировке мыши скрипт крашится. Что не так во втором скрипте?
Скрипит №1
Скрипит №2
Скрипит №1
Код:
#include <WinAPI.au3>
Global $hHook_Mouse, $hStub_MouseProc
LockMouse()
Sleep(5000)
UnlockMouse()
While Sleep(100)
WEnd
Func LockMouse()
$hStub_MouseProc = DllCallbackRegister("MouseProc", "long", "int;wparam;lparam")
$hHook_Mouse = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), _WinAPI_GetModuleHandle(0))
EndFunc
Func MouseProc($nCode, $wParam, $lParam)
Return 1
EndFunc
Func UnlockMouse()
_WinAPI_UnhookWindowsHookEx($hHook_Mouse)
DllCallbackFree($hStub_MouseProc)
EndFunc
Скрипит №2
Код:
#include <WindowsConstants.au3>
#include <WinAPI.au3>
Global $Starting=False, $hStub_MouseProc, $hHook_Mouse
AdlibRegister('ControlExist', 500)
While Sleep(100)
WEnd
Func ControlExist()
If Not ProcessExists('notepad.exe') And $Starting=False Then
LockMouse()
$Starting=True
Run(@ComSpec&' start cmd /c notepad.exe')
ElseIf ProcessExists('notepad.exe') And $Starting=True Then
$Starting=False
UnlockMouse()
EndIf
EndFunc
Func LockMouse()
ConsoleWrite('LockMouse'&@CRLF)
$hStub_MouseProc = DllCallbackRegister("MouseProc", "long", "int;wparam;lparam")
$hHook_Mouse = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), _WinAPI_GetModuleHandle(0))
EndFunc
Func UnlockMouse()
ConsoleWrite('UnlockMouse'&@CRLF)
_WinAPI_UnhookWindowsHookEx($hHook_Mouse)
DllCallbackFree($hStub_MouseProc)
EndFunc
Func MouseProc($nCode, $wParam, $lParam)
Return 1
EndFunc
Код:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: autoit3.exe
Версия приложения: 3.3.10.2
Отметка времени приложения: 52c196bd
Имя модуля с ошибкой: StackHash_0a9e
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 00000000
Код исключения: c0000005
Смещение исключения: 00180057
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt