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

[PROBLEM]Autoit


Rekomendowane odpowiedzi

Opublikowano

witam

 

korzystam z

 

http://www.mpcforum.pl/topic/552124-mini-kompedium-wiedzy-na-temat-klikania-w-nieaktywnych-oknach/

 

ale mi nie dziala co robie zle

 

#include <WinAPI.au3>
 #include <WindowsConstants.au3>

 
 sleep(3000)
 $hWnd = WinGetHandle("bez tytułu - Paint", "") ; - pobieramy uchwyt okna
 $LoWo = _WInAPI_MakeLong(42,39) ; - tworzymy Longword dla współrzędnych

 _WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, "", $LoWo) ; - wciskamy Lewy Przycisk Myszy
 _WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, "", $LoWo) ; - puszczamy Lewy Przycisk Myszy

 

chce zeby na zminimalizowanym koknie painta kliknelo w wypelnienie kolorem

skrypt uruchamia sie ale nie dziala

Opublikowano

Bo z tego co widzę to używasz tych samych współrzędnych dla obu poleceń... Zrób drugiego Longa z współrzędnymi pola do rysowania i wstaw drugi raz z nowymi współrzędnymi ten kawałek kodu:

_WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, "", $LoWo) ; - wciskamy Lewy Przycisk Myszy

_WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, "", $LoWo) ; - puszczamy Lewy Przycisk Myszy

bo twój kod klika tylko raz.
846331404756772371599.jpeg
Opublikowano

Niestety nic mi z tego nie wychodzi

 

czy jest ktos kto napisze mi cos na styl wzoru + opis co od czego jest ?

 

zalezy mi na tym zeby na zminimalizowanym oknie nap paint kliknelo w wypelnienie kolorem

 

Prosze o pomoc lub dobry Tut opisujacy dzialanie na zminimalizowanym ;)

Opublikowano

Po dłuższej chwili kombinowania uznałem że takie coś nie będzie działać z niewiadomych przyczyn... Zdarza sie.

Ale w ramach świra spróbowałem jeszcze to odtworzyć w C++

#include <windows.h>
#include <cstdio>
#include <conio.h>

int main()
{

    Sleep(3000);
    HWND uchwyt = FindWindow("MSPaintApp", NULL);
    if (uchwyt == NULL)
    {
        printf("Blad, nie mozna zdobyc HANDLE do okna\n");
        return 1;
    }

    long xy1 = MAKELONG(271, 69);
    long xy2 = MAKELONG(105, 266);

    PostMessage(uchwyt, WM_LBUTTONDOWN, NULL, xy1);
    PostMessage(uchwyt, WM_LBUTTONUP, NULL, xy1);

    PostMessage(uchwyt, WM_LBUTTONDOWN, NULL, xy2);
    PostMessage(uchwyt, WM_LBUTTONUP, NULL, xy2);

    printf("Zakonczono pomyslnie.\n");

    getch();
    return 0;
}
Efekt identyczny jak przy poprzedniej próbie. Czyli ten sposób po prostu nie działa, musisz znaleźć coś innego.
846331404756772371599.jpeg
Uczeń
Opublikowano

z tego co widzę to używasz tych samych współrzędnych dla obu poleceń... Zrób drugiego Longa z współrzędnymi pola do rysowania

Opublikowano

próbowałem 2 sposobami

winapi i controlclick

 

#include <WinAPI.au3>
 #include <WindowsConstants.au3>




 sleep(3000)
 $hWnd = WinGetHandle("[CLASS:MSPaintApp]", "") ; - pobieramy uchwyt okna
If @error Then
    MsgBox(4096, "Error", "Could not find the correct window")
endif


for $i = 72 to 200
     ControlClick("[CLASS:MSPaintApp]", "", "Afx:00000000FFB30000:81","",1,$i,250)
 Next

 

przycontrol clicku beka jest, w tle nie dziala, ale jak juz wejdziemy w painta to zaczyna skrobać

takie coś mi wyszło xD

http://screenshooter.net/7689012/cbvoucv

 

 

 

 

#include <WinAPI.au3>
 #include <WindowsConstants.au3>




 $hWnd = ControlGetHandle("[CLASS:MSPaintApp]", "", "Afx:00000000FFB30000:81") ; - pobieramy uchwyt okna
If @error Then
    MsgBox(4096, "Error", "Could not find the correct window")
endif


for $i = 72 to 200
     $LoWo = _WInAPI_MakeLong($i,250) ; - tworzymy Longword dla współrzędnych
 _WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, 0, $LoWo) ; - wciskamy Lewy Przycisk Myszy
 _WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, 0,$LoWo ) ; - puszczamy Lewy Przycisk Myszy Next
 

brakowało controlki do obiektu w którym ma klikać

w c++

 

hWndParent = FindWindow(vbNullString, "Hal")

'Search for the child window
hWndChild = GetWindow(hWndParent, GW_CHILD)

 

 

btw. autoit jest do tego chujowym rozwiązaniem

http://screenshooter.net/7689012/tknxoyh

powinien powstać jeden solidny kwadrat :)

dla

 

for $i = 0 to 200
    for $z = 0 to 200
     $LoWo = _WInAPI_MakeLong($i,$z) ; - tworzymy Longword dla współrzędnych
 _WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, 0, $LoWo) ; - wciskamy Lewy Przycisk Myszy
 _WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, 0,$LoWo ) ; - puszczamy Lewy Przycisk Myszy
 Next
 Next

dlatego lepiej od jednej lini rysować( bez btn up)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...