keystroke an ein non topmost fenster schicken



  • Hi,

    ich hab folgendes Problem:

    Ich muss eine Reihe von Tastendrücken simulieren - dabei muss ich sie aber an ein Fenster senden was weder den Sicht- noch den Tastaturfocus hat.
    Daher kann ich nich die Funktion keybd_event() benutzen.

    Alle meine Versuche das Problem mit SendMessage() und WM_KEYDOWN / WM_KEYUP zu lösen sind fehlgeschlagen... 😞

    Ich hoffe jemand von euch kann mir helfen 😉

    greetz Slater und schonmal Danke



  • Vielleicht hast du die Nachrichten nicht an das richtige Child-Window geschickt. Du Eingabefokus willst du den Fenster aber nicht geben, oder?



  • Problem gelöst sry - hatte den scan Kram vergessen

    void sendKeyMsg(int msg,HWND hWnd)
    {
    	UINT vk = VkKeyScan(msg);
    	UINT scan = MapVirtualKey(vk,0);
    	LPARAM lparam1 = 0x00000001 | (LPARAM)(scan << 16);
    	LPARAM lparam2 = 0xC0000001 | (LPARAM)(scan << 16);
    
    	if(msg =='/')
    		PostMessage(hWnd,WM_KEYDOWN,VK_SHIFT,0x00000001 | (LPARAM)(MapVirtualKey(VK_SHIFT,0) << 16));		
    	PostMessage(hWnd,WM_KEYDOWN,vk,lparam1);	
    	PostMessage(hWnd,WM_KEYUP,vk,lparam2);
    	if(msg == '/')
    		PostMessage(hWnd,WM_KEYUP,VK_SHIFT,0xC0000001 | (LPARAM)(MapVirtualKey(VK_SHIFT,0) << 16));		
    }
    


  • nur wie krieg ich jetzt den / hin ...


Anmelden zum Antworten