• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ bot do klikania w czarne pixele WinAPI GetPixel

Cloud VPS
0 głosów
602 wizyt
pytanie zadane 17 listopada 2020 w C i C++ przez disaster Bywalec (2,120 p.)

Cześć,

Chciałbym napisać bota który po wykryciu czarnego pixela w podanych współrzędnych ekranu (x, y) po prostu tam kliknie,
Podaje to co napisałem, ale mi to w ogóle nie działa - proszę o jakies wskazówki 
 

#include <windows.h>
#include <iostream>
#include <winuser.h>
#include <conio.h>
#include <unistd.h>

using namespace std;


int main(){
     while(true){


    HDC pulpit = GetDC(NULL);                       
    COLORREF kolor = GetPixel(pulpit, 580, 470);     
    COLORREF kolor1 = GetPixel(pulpit, 680, 470);
    COLORREF kolor2 = GetPixel(pulpit, 770, 470);    
    COLORREF kolor3 = GetPixel(pulpit, 880, 470);   
    //cout << kolor << '\n';                         
    ReleaseDC(NULL, pulpit);            

    
    while(true){

    if (kolor = 0){
    SetCursorPos(580,470);
    cout<<"BLACK    0"<<endl;
    mouse_event (MOUSEEVENTF_LEFTDOWN| MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }

    else if (kolor1 = 0){
    SetCursorPos(680,470);
    cout<<"BLACK    1"<<endl;
    mouse_event (MOUSEEVENTF_LEFTDOWN| MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }

    else if (kolor2 = 0){
    SetCursorPos(770,470);
    cout<<"BLACK    2"<<endl;
    mouse_event (MOUSEEVENTF_LEFTDOWN| MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }

    else (kolor3 = 0);{
    SetCursorPos(880,470);
    cout<<"BLACK    3"<<endl;
    mouse_event (MOUSEEVENTF_LEFTDOWN| MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    
    }

}
return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 17 listopada 2020 przez NewEraOfPeace Gaduła (4,790 p.)

kolor = 0
użyłeś jednego operator porównania =, to oznacza przypisanie. Jest to wyrażenie, które zwróci 0, które automaycznie zostanie uznane, za false, czyli żaden z tych branchy ifa się nie wykona. Wszędzie musisz mieć kolor == 0, kolor1 == 0, etc.

komentarz 17 listopada 2020 przez disaster Bywalec (2,120 p.)
Słuszna uwaga  Jednak problem nadal ten sam, po kompilacji dostaje na ekran "BLACK 3" i dalej nic sie nie dzieje.
komentarz 17 listopada 2020 przez NewEraOfPeace Gaduła (4,790 p.)
generalnie, to to Ci się nie powinno skompilować..
else (kolor3 = 0);
tutaj nie dość, że masz błąd (do else'a nie ma nawiasów, nie ma warunków), to jeszcze średnik, który powoduje, ze to co jest w nawiasach zawsze się wykona
komentarz 18 listopada 2020 przez disaster Bywalec (2,120 p.)

Cóż, faktycznie za dużo tych błędów...
Spacer, spojrzenie na problem 'świeżym okiem' i proszę.
Wstawiam kod, może się komuś na coś przyda. 
Program po wykryciu czarnego pixela na podanych współrzędnych (x, y) ustawia tam kursor i klika. 
 

#include <windows.h>
#include <iostream>
#include <winuser.h>
#include <conio.h>
#include <unistd.h>

using namespace std ;

int main(){
HDC dc = GetDC(NULL);


 while(true){

COLORREF color = GetPixel(dc, 600, 460);
if (color==0){
    cout<<"BLACK    0"<<endl;
  SetCursorPos(600,460);
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

}

COLORREF color1 = GetPixel(dc, 700, 460);
if (color1==0){
    cout<<"BLACK    1"<<endl;
    SetCursorPos(700,460);
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

}

COLORREF color2 = GetPixel(dc, 800, 460);
if (color2==0){
    cout<<"BLACK    2"<<endl;
      SetCursorPos(800,460);
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

}

COLORREF color3 = GetPixel(dc, 900, 460);
if (color3==0){
    cout<<"BLACK    3"<<endl;
      SetCursorPos(900,460);
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
}
}
}

 

Podobne pytania

0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 9 grudnia 2019 w C i C++ przez MrMock Bywalec (2,890 p.)
0 głosów
3 odpowiedzi 410 wizyt
0 głosów
2 odpowiedzi 960 wizyt
pytanie zadane 31 maja 2019 w C i C++ przez MegaaSoft Obywatel (1,430 p.)

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,908 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...