2012-04-03 12 views
1

Mögliche Duplizieren:
Using SendMessage to enter text into an edit control belonging to another processSendmessage bearbeiten Steuerflit C++

Ich möchte Text in Bearbeitungssteuer von directx Fenster programmatisch einzurichten. Ich kann das richtige Handle des Bearbeitungssteuerelements erhalten, aber Text wird nur eingefügt, wenn ich auf Bearbeiten-Steuerelement klicke, wie Text eingefügt werden kann, ohne auf Bearbeiten-Steuerelement zu klicken. Ich mache das:

HWND hWnd = FindWindow(NULL,"Game"); 
HWND edit = FindWindowEx(hWnd, NULL, "Edit", NULL); 

SendMessage(edit, WM_CHAR, (TCHAR) 'H', 0); 
Sleep(100); 
SendMessage(edit, WM_CHAR, (TCHAR) 'E', 0); 
Sleep(100); 
SendMessage(edit, WM_CHAR, (TCHAR) 'L', 0); 
Sleep(100); 
SendMessage(edit, WM_CHAR, (TCHAR) 'L', 0); 
Sleep(100); 
SendMessage(edit, WM_CHAR, (TCHAR) 'O', 0); 
Sleep(100); 

Übergeordnetes Fenster verbirgt/deaktiviert das Edit-Steuerelement, wenn ich weg von Bearbeitungssteuerung bewegen.

Dieser Code funktioniert nur, wenn ich gleichzeitig auf Bearbeiten-Steuerelement klicken, wenn Code ausgeführt wird .... aber wie programmgesteuert und voll automatisiert, um Text einzufügen, ohne auf Bearbeiten-Steuerelement klicken. Es ist möglich, dies alles im Hintergrund zu tun?

+0

Nicht schon wieder! OK, ich google es für Sie ... WM_CHAR auf MSDN: "Wird in das Fenster mit dem Tastaturfokus gesendet, wenn eine WM_KEYDOWN-Nachricht von der TranslateMessage-Funktion übersetzt wird." 'MIT DER TASTATUR FOKUS!' –

+0

Es ist immer noch falsch, 'WM_CHAR' anstelle von' WM_SETTEXT' zu verwenden. Bei der Frage geht es eigentlich nur um das Verhalten der Ziel-App, bei der das Bearbeitungssteuerelement ausgeblendet oder deaktiviert wird, wenn Sie sich davon entfernen. Aber du hast das nicht erwähnt. Zweifellos wird es (wieder) in den Kommentaren unten kommen. Bitte bitte nicht die gleiche Frage stellen. Sie haben beim letzten Mal keine Antwort bekommen, weil die Frage sehr schlecht war. Die gleiche Frage zu stellen macht uns nur wütend. –

+0

@David Heffernan Wenn Sie wissen, was ich will, warum Sie nicht Ihre Antwort posten, und sagen Sie mir einfach nicht uns wütend machen ..... wenn Sie nicht wissen oder nicht helfen wollen, dann gehen Sie weg. P.S .: Ja, es verbirgt/deaktiviert das Bearbeitungssteuerelement, wenn ich mich vom Bearbeitungssteuerelement entferne. – Jigberto

Antwort

0

Wie wäre es mit Edit_SetText?

+0

Ich habe es versucht, und funktioniert nicht, auch wenn ich auf Bearbeitungssteuerung, anderen Vorschlag klicken? – Jigberto

+0

Mein Vorschlag ist, dass Sie die gleiche Frage nicht zweimal stellen. Ich habe übrigens deine andere Frage beantwortet. – karlphillip