Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WinAPI.au3>
- ; Start this script first! It will automatically start the other script if it is within the same directory under the name 'Main.au3'.
- ; -Author: name22 (www.autoit.de)
- Run(@AutoItExe & ' "' & @ScriptDir & '\Main.au3"')
- Global Const $tagMSLLHOOKSTRUCT = "INT X; INT Y;DWORD mouseData;DWORD flags;DWORD time;ULONG_PTR dwExtraInfo", $WM_EVENT = _WinAPI_RegisterWindowMessage("AutoItEvent")
- Global $hWnd_Magnifier, $hMouseHook, $hMouseProc, $hSendAsyncProc, $pSendAsyncProc, $bEventReady = True
- Global $hDll_User32 = DllOpen("user32.dll")
- Do
- $hWnd_Magnifier = WinGetHandle("AutoItMagnifyingGUI")
- Until Not @error
- $hMouseProc = DllCallbackRegister("_MouseProc", "INT", "INT;PTR;PTR")
- $hMouseHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hMouseProc), _WinAPI_GetModuleHandle(0), 0)
- $hSendAsyncProc = DllCallbackRegister("_SendAsyncProc", "NONE", "HWND;UINT;ULONG_PTR;LRESULT")
- $pSendAsyncProc = DllCallbackGetPtr($hSendAsyncProc)
- Sleep(10)
- DllCall($hDll_User32, "BOOL", "SendMessageCallback", "HWND", $hWnd_Magnifier, "UINT", $WM_EVENT, "WPARAM", _WinAPI_GetMousePosX(), "LPARAM", _WinAPI_GetMousePosY(), "PTR", $pSendAsyncProc, "ULONG_PTR", 0)
- While Sleep(500)
- If Not WinExists($hWnd_Magnifier) Then Exit
- WEnd
- Func _MouseProc($nCode, $wParam, $lParam)
- Local $aRet = DllCall($hDll_User32, "LRESULT", "CallNextHookEx", "HANDLE", $hMouseHook, "INT", $nCode, "WPARAM", $wParam, "LPARAM", $lParam)
- If $nCode < 0 Then Return $aRet[0]
- If BitAND($wParam, 0xFFFF) = 0x0200 And $bEventReady Then
- Local $tMHook = DllStructCreate($tagMSLLHOOKSTRUCT, $lParam)
- $bEventReady = False
- DllCall($hDll_User32, "BOOL", "SendMessageCallback", "HWND", $hWnd_Magnifier, "UINT", $WM_EVENT, "WPARAM", DllStructGetData($tMHook, "X"), "LPARAM", DllStructGetData($tMHook, "Y"), "PTR", $pSendAsyncProc, "ULONG_PTR", 0)
- EndIf
- Return $aRet[0]
- EndFunc
- Func _SendAsyncProc($hWnd, $iMsg, $dwData, $lResult)
- $bEventReady = True
- EndFunc
- Func _Shutdown()
- _WinAPI_UnhookWindowsHookEx($hMouseHook)
- DllCallbackFree($hMouseProc)
- DllCallbackFree($hSendAsyncProc)
- DllClose($hDll_User32)
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement