GetPixel(); Hilfe!



  • Hallöchen, ich hab da mal nen Problem und zwar mit GetPixel();

    Ich möchte ein Fenster auf eine Bestimme Farbe untersuchen (mit ner doppelten schleife für x und y achse)

    wenn die bestimmte farbe gefunden wurde, soll er irgendwas machen (beispielsweise ne message box)

    So, mein Aktuelle Code, der aber nicht wirklich funktioniert:

    #include <windows.h>
    
    HWND myWindowHandler;
    
    int windowWidth;
    int windowHeight;
    int windowXPos;
    int windowYPos;
    
    int main()
    {
        myWindowHandler = FindWindow (NULL, "TeamSpeak 2");
        // Fenster in Originalgröße anzeigen
        ShowWindow(myWindowHandler, SW_RESTORE);
        // Fenster in den Vordergrund holen
        SetForegroundWindow(myWindowHandler);
        // Tastaturfokus auf Fenster setzen
        SetFocus(myWindowHandler);
        // Fenstergeometrie ermitteln
        RECT rectangle;
        GetWindowRect (myWindowHandler, &rectangle);
        // Breite und Höhe des Fensters
        windowWidth = rectangle.right - rectangle.left;
        windowHeight = rectangle.bottom - rectangle.top;
        // X- und Y-Position des Fensters
        windowXPos = rectangle.left;
        windowYPos = rectangle.top;
    
        COLORREF tmp;
        HDC displayCanvas;
    
        while(1)
        {
                displayCanvas = GetDC(myWindowHandler);
        for (int x=0; x<windowWidth; x++)
        {
            for (int y=0; y<windowHeight; y++)
            {
                if(GetPixel(displayCanvas, x, y) == RGB(66,255,0))
                {
                    MessageBox(0,"Pixel erfolgreich gefunden ;>","Gefunden!", MB_OK | MB_ICONINFORMATION);
                }
            }
        }
        Sleep(50);
        }
        return 0;
    }
    

    Als beispiel habe ich mal das Teamsepak 2 fenster gewählt, und die farbe "66,255,0" ist die grüne leuchtende lampe (die leuchtet wenn man selbst oder wer anders was spricht...

    achja, was ich noch wissen müste ist, reicht es wenn ich nur libgdi32.a mitlinke, oder muss man was ganz anderes mitlinken, oder fehlt noch ne header datei??

    Naja das wars erstmal und ich bedank mich schonmal :>

    Entöö



  • Entchen schrieb:

    So, mein Aktuelle Code, der aber nicht wirklich funktioniert:

    Deine Fehlerbeschreibung müsste schon ein bischen genauer sein. 🙂

    Gib den Gerätekontext nach Gebrauch wieder frei :

    ...
     }
     ReleaseDC(myWindowHandler, displayCanvas); // <- !
     Sleep(50);
     }
     return 0;
    ...
    

    P.S.: Was ist "TeamSpeak 2" eigentlich ?



  • TeamSpeak 2 ist ein Voice over IP programm, gerne von gamern benutzt um takticken zu besprechen oder wo die feinde sind etc...

    oder auch um so zu plaudern etc...

    naja teamspeak war nur nen bsp. benutzen tue ich es für was anderes *duck* ^^
    bzw coden und testen, nicht benutzen, is ja sonst unfair..

    danke klappt!


Anmelden zum Antworten