• 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

Object Storage Arubacloud
0 głosów
416 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ź 95 wizyt
pytanie zadane 9 grudnia 2019 w C i C++ przez MrMock Bywalec (2,890 p.)
0 głosów
3 odpowiedzi 302 wizyt
0 głosów
2 odpowiedzi 562 wizyt
pytanie zadane 31 maja 2019 w C i C++ przez MegaaSoft Obywatel (1,430 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...