Бот у меня варпает вот таким способом, через меню в верхнем левом углу. Но есть проблема, я иногда во время работы люблю пофлудить в какомнибудь чате, и, если я во время нажатия на стрелку и выбора буки начинаю чтолибо печатать то ниспадающее меню пропадает и бот тупо щелкает по экрану вместо выбора буки. Очевидное решение использовать BlockInput не помогло, также пропадает меню, наткнулся на BlockInputEx, но результат такойже.
Приведу кусок кода, может пригодится.
($main[0] и $main[1] это координаты вершины треугольника меню)
$MenuX и $MenuY; координаты середины меню, белая стрелочка на пару пикселов ниже и правее $main[0] и $main[1]
$MenuY
$bookmarkX=$main[0]+94 ; координаты бук для варпа Горизонталь, постоянно.
$bookmarkXwarp=$bookmarkX+200 ; координаты бук для варпа Горизонталь, смещение для клика
$belt_1=$main[1]+97; это координаты 1 буки по Y, остальные кратны 16 (при размере шрифта 11)
Код:
#Include <GUIConstantsEx.au3>
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
Global $Lock = False
$hDll = DllCallbackRegister('_KbdHook', 'long', 'int;wparam;lparam')
$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hDll), _WinAPI_GetModuleHandle(0), 0)
warp($belt_1)
Func warp($bookmarkY)
WarpTest(); проверка на варп и посылает ктрл+спейс
_KbdLock(1)
MouseClick("left", $MenuX+Random(3), $MenuY+Random(2), 1, 10)
Sleep(1500)
MouseMove($bookmarkX+Random(10), $bookmarkY+Random(4), 10)
Sleep(1500)
MouseClick("left", $bookmarkXwarp+Random(25), $bookmarkY+2+Random(4), 1, 20)
_KbdLock(0)
WarpTest_true() ;приостановка до конца варпа
EndFunc
Func _KbdLock($fLock)
$Lock = $fLock
EndFunc ;==>_KbdLock
Func _KbdHook($iCode, $wParam, $lParam)
If ($iCode > -1) And ($Lock) Then
Switch $wParam
Case $WM_KEYDOWN, $WM_SYSKEYDOWN
Return -1
EndSwitch
EndIf
Return _WinAPI_CallNextHookEx($hHook, $iCode, $wParam, $lParam)
EndFunc ;==>_KbdHook
Func OnAutoItExit()
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($hDll)
EndFunc ;==>OnHotKeyExit
вот теперь работает все, спасибо Yashied