Pixelscan Programm Optimierung



  • Könntet ihr mir helfen, wie ich diesen Code (Header datei) optimieren kann.
    GetPixel läuft einfach zu langsam und ich finde leider keine Alternative.

    #include <windows.h>
    #include <iostream>
    
    using namespace std;
    
    class Scan
    {
    public:
    	int r;
    	int g;
    	int b;
    	HDC hDC;
    
    	Scan()
    	{
    		r = 0;
    		g = 0;
    		b = 0;
    		hDC = GetDC(HWND_DESKTOP);
    	}
    
    	void Werte()
    	{
    		cout << "Geben Sie die RGB Werte ein" << endl;
    		cout << endl;
    		cout << "\tR: ";
    		cin >> r;
    		cout << endl;
    		cout << "\tG: ";
    		cin >> g;
    		cout << endl;
    		cout << "\tB: ";
    		cin >> b;
    		cout << endl;
    		cout << "Druecken Sie Enter zum Scannen";
    		cout << endl;
    		cin.ignore();
    	}
    
    	void Bot(int x, int y)
    	{
    		if(r == GetRValue(GetPixel(hDC, x, y)) && g == GetGValue(GetPixel(hDC, x, y)) && b == GetBValue(GetPixel(hDC, x, y)))
    		{
    			cout << "test!" << endl;
    		}
    
    	}
    
    };
    


  • Mach ein Screenshot und geh die Bitmap durch. Geht wahrscheinlich schneller.



  • Es geht zwar schneller, aber es ist dann nicht mehr Live.
    Ich kann dann auf keine Änderungen am Desktop reagieren.



  • !!Doch kannst Du.

    So werden unter Win Api unter der Message WM_PAINT auch die bmp vor dem blitten nach einer Farbe gescanned um transparenz zu erzeugen. Die Frage ist "wann" und unter welcher Bedingung Du den Screenshot machst. Ich denke das zum Beispiel kein User imstande ist innerhalb von 50ms eine sich verändernde Reaktion zu zeigen.

    Daher SetTimer, Screenshot, scannen,...

    Probiers einfach, meiner Meinung sollte das "live" genug sein.

    grüüße



  • beim einlesen einen rgb-wert generieren: rgb = RGB(r,g,b);
    GetPixel nur einmal aufrufen: if(rgb = GetPixel)
    cout << "test";



  • ja geht schon ein wenig schneller, danke für den tipp optimiz0r 😉

    könnte ich einfache Sachen, in meinem Programm noch durch Inline Assembler optimieren? wenn ja wie?



  • was soll denn das programm mal werden? vielleicht kann man da noch irgendwie anders tricksen.



  • Das Programm soll Pixel scannen und dann auf bestimmte Sachen reagieren so wie ein Bot halt.


Anmelden zum Antworten