Что нового

Как будет выглядеть функция left down из UOpilot?

Фазинур

Новичок
Сообщения
52
Репутация
0
Как все это будет выглядеть в Auto IT
Код:
left_down 300,400
wait 2s
left_up 300,400.
это код из UOpilot

Control ID не удается выбить.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Автор
Ф

Фазинур

Новичок
Сообщения
52
Репутация
0
Извините, я просто запутался между двумя языками. Исправил код.
В UOpilot невозможно закомпиллировать, да и вообще он не стабилен.
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Фазинур
Исходников текущей версии UoPilot я не нашёл (возможно они и не выкладываются). А в исходниках 0.96 beta нет команд left_down и left_up, т.к. они были добавлены позже (в версии 1.00 beta 1). Но там есть команда left, на основании работы которой можно предположить работу тех двух. И выглядит это примерно так
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>

$wnd = WinGetHandle("title")

left_down($wnd, 300, 400)
Sleep(2000)
left_up($wnd, 300, 400)

Func left_down($hWnd, $X, $Y)
  _WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, 0, _WinAPI_MakeLong($X, $Y))
  _WinAPI_PostMessage($hWnd, $WM_SETCURSOR, $hWnd, _WinAPI_MakeLong($HTCLIENT, $WM_LBUTTONDOWN))
EndFunc

Func left_up($hWnd, $X, $Y)
  _WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, 0, _WinAPI_MakeLong($X, $Y))
  _WinAPI_PostMessage($hWnd, $WM_SETCURSOR, $hWnd, _WinAPI_MakeLong($HTCLIENT, $WM_LBUTTONUP))
EndFunc


Обе эти функции можно объединить в одну: нажатие-отпускание с задержкой
Код:
LeftDownUp($wnd, 300, 400, 2000)

Func LeftDownUp($hWnd, $X, $Y, $Sleep = 0)
  _WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, 0, _WinAPI_MakeLong($X, $Y))
  _WinAPI_PostMessage($hWnd, $WM_SETCURSOR, $hWnd, _WinAPI_MakeLong($HTCLIENT, $WM_LBUTTONDOWN))
  If $Sleep Then Sleep($Sleep)
  _WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, 0, _WinAPI_MakeLong($X, $Y))
  _WinAPI_PostMessage($hWnd, $WM_SETCURSOR, $hWnd, _WinAPI_MakeLong($HTCLIENT, $WM_LBUTTONUP))
EndFunc
 
Автор
Ф

Фазинур

Новичок
Сообщения
52
Репутация
0
Я так и думал, что там используется WINapi. Где-то на форумах UOpilot было написано.


Добавлено:
Сообщение автоматически объединено:

Спасибо братан, работает урааааа. Огромное спасибо. :dance2:
 
Верх