Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

ControlClick - Autoit


Rekomendowane odpowiedzi

Opublikowano

Można zrobić coś takiego z wykorzystaniem systemowego DLL, jak na poniższym skrypcie demonstracyjnym:

$hHandle = InputBox("Test ControlClickDrag:", "1. Uruchom PAINT'a" & @LF & _
                                              "2. Odczytaj uchwyt (Handle) pola rysowania" &  @LF & _    ;odczytane przez AutoIt v3 Windows Info
                                              "3. Ukryj okno PAINT'a" & @LF & _
                                              "4. Wpisz uchwyt w pole INPUT")
ControlClickDrag($hHandle,"left",100,50,100,200)
ControlClickDrag($hHandle,"left",100,200,200,100)
ControlClickDrag($hHandle,"left",200,100,300,200)
ControlClickDrag($hHandle,"left",300,200,300,50)

;--------------------------------------------------------------------------------
#include <WinAPI.au3>
Func ControlClickDrag($hHandle, $sButton="left", $X1=0, $Y1=0, $X2=0, $Y2=0)
   Local $MK_LBUTTON  = 0x0001, $WM_LBUTTONDOWN  = 0x0201, $WM_LBUTTONUP  = 0x0202
   Local $MK_RBUTTON  = 0x0002, $WM_RBUTTONDOWN  = 0x0204, $WM_RBUTTONUP  = 0x0205

   If $sButton = "left" Then
      DllCall("user32.dll", "int", "SendMessage", "hwnd", $hHandle, "int", $WM_LBUTTONDOWN, "int", $MK_LBUTTON, "long", _WinAPI_MakeLong($X1, $Y1))
      DllCall("user32.dll", "int", "SendMessage", "hwnd", $hHandle, "int", $WM_LBUTTONUP, "int", $MK_LBUTTON, "long", _WinAPI_MakeLong($X2, $Y2))
   ElseIf $sButton = "right" Then
      DllCall("user32.dll", "int", "SendMessage", "hwnd", $hHandle, "int", $WM_RBUTTONDOWN, "int", $MK_RBUTTON, "long", _WinAPI_MakeLong($X1, $Y1))
      DllCall("user32.dll", "int", "SendMessage", "hwnd", $hHandle, "int", $WM_RBUTTONUP, "int", $MK_RBUTTON, "long", _WinAPI_MakeLong($X2, $Y2))
   EndIf
EndFunc

Aby zobaczyć efekt działania należy postępować zgodnie z wyświetloną instrukcją.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...