GetMessage() ohne Fenster



  • Hallo zusammen,

    ich bin gerade dabei ein Programm ohne GUI zu schreiben (also keine Konsole usw.).

    Ich will mit meinem Programm Messages empfangen und auswerten (WM_KEYDOWN;WM_KEYUP;..) aber ich habe die Vermutung, dass es keine Messages empfängt 😃
    Wie kann ich das ändern?

    Hier mein Code:

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine,
                       int nCmdShow)
    {
    	MSG msg;
    
    	while (GetMessage(&msg, NULL, 0, 0))
    	{
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    	return (int)msg.wParam;
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch (message)
    	{
    		case WM_KEYDOWN:
    		{
    			switch (wParam)
    			{
    			case VK_ESCAPE:
    				SendMessage(hWnd, WM_CLOSE, 0, 0);
    				break;
    			}
    		}
    		case WM_KEYUP:
    		{
    			switch (wParam)
    			{
    			}
    		}
    		case WM_DESTROY:
    		{
    			PostQuitMessage(0);
    			return 0;
    		}
    
    	}
    	return DefWindowProc(hWnd, message, wParam, lParam);
    }
    

    Vielen Dank,
    Thindia80


  • Mod

    Nur ein Fenster, dass den Fokus hat kann Tastaturnachrichten empfangen.
    Dein Programm wird nie irgendwas bekommen...



  • Und wie machen das dann z.B. Keylogger?

    lg,
    -Thindia80


  • Mod

    Hooks!
    Und damit ist das Thema für mich beendet... :xmas1:



  • Wieso erzeugst du kein Fenster und stellt es auf SW_HIDE ?


Anmelden zum Antworten