017
24.07.2011, 20:34 Uhr
TOSHMAX
|
Hier mal ein kleines Beispiel, wie man es machen kann:
C++: |
#include <windows.h> #include <ctype.h>
void simulate_text_input(HWND hWnd, const char* Text) { for(; *Text; ++Text) { if(isalpha(*Text)) { WPARAM wParam = toupper(*Text);
PostMessage(hWnd, WM_KEYDOWN, wParam, 0); PostMessage(hWnd, WM_KEYUP, wParam, 1 << 31); } else { PostMessage(hWnd, WM_KEYDOWN, VK_SPACE, 0); PostMessage(hWnd, WM_KEYUP, VK_SPACE, 1 << 31); } } }
|
Es kann leider nur die Tasten von a-z und keine Großbuchstaben. Shift zu simulieren ist nicht so ohne weiteres möglich. Das könnte man denke ich mit keybd_event realisieren, allerdings muss das Fenster dazu den Fokus haben.
WM_SETTEXT setzt den Titel eines Fensters. Beim Notepad funktioniert das, weil der Titel des Edit-Fensters der gleiche ist, wie der Inhalt, der angezeigt wird. Bei der Konsole sind diese Dinge allerdings getrennt. |