mein code funktioniert einfach nicht.



  • Hallo,

    ich brauche dringend eure hilfe:

    #include <windows.h>    // include the basic windows header file
    #include <stdio.h>
    
    HWND hWnd;
    HDC DC;
    DWORD Color;
    int i, j;
    
    // the entry point for any Windows program
    int WINAPI WinMain(HINSTANCE hInstance,
    	HINSTANCE hPrevInstance,
    	LPSTR lpCmdLine,
    	int nShowCmd)
    {
    	hWnd = GetDesktopWindow();
    	DC = GetWindowDC(hWnd);
    
    	while (1)
    	{
    		DC = GetWindowDC(hWnd);
    
    		if (GetAsyncKeyState(VK_END))
    		{
    			ExitProcess(0);
    		}
    
    		for (j = 767; j < 665; j++)
    		{
    			for (i = 1032; i < 417; i++)
    			{
    				Color = GetPixel(DC, i, j);
    				switch (Color)
    				{
    				case 0xED1C24:
    					if (GetAsyncKeyState(VK_RBUTTON))
    					{
    						MessageBox(NULL, L"Found", NULL, MB_OK);
    					}
    					break;
    				}
    			}
    		}
    		Sleep(100);
    	}
    }
    

    Habe fast alles versucht es funktioniert einfach nicht. 😞

    Was es machen sollte: Er scannt in den Quadrat von(767/665/1032/417) nach der Farbe 0xBB1518 und wenn gefunden ist, gibt er eine Nachricht aus.

    Die Fenstergröße ist bei mir 1680x1050.

    ich bin sehr dankbar wenn für jede hilfe.

    bild: http://i.gyazo.com/d470edead8ba2fed06fae6f84264fa89.png



  • Du willst ne Schleife von 767 bis < 665 laufen lassen und wunderst dich dass es nicht geht?



  • Hallo

    Ich glaube du hast noch ein Problem mit dem Verständnis der for-Schleife.
    In deinem Code wird keine der schleifen durchlaufen, da der Initialwert größer ist als der Vergleichswert.

    Wenn ich dich richtig verstanden habe, dann müsste die Schleife für j so aussehen:

    for (int j = 665; j < 767; j++) ...
    

    Die änder glaub ich schaffst du dann selber.

    Achtjährige und Variblen werden im so lokal wie möglich deklariert, deine zählvariablen reichen wenn du diese in der schleifen definierst (siehe mein Beispiel). Und Globale Variablen sind so gut wie nie zu benutzen.

    Mfg Marco



  • Marc-O schrieb:

    Achtjährige und Variblen werden im so lokal wie möglich deklariert

    WTF?



  • Och, Schade daß ich nicht als Erster meinen frechen Kommentar zu

    for (j = 767; j < 665; j++)
            {
                for (i = 1032; i < 417; i++)
    

    posten durfte. 😉

    EDIT:
    Man sollte nicht versuchen die Alpen zu klettern wenn man nicht mal das Laufen gelernt hat.


Anmelden zum Antworten