sendmessage() programme steuern
-
hi,
hab da nen kleines Problem mit der Funktion senmessage.
Ich möchte einen Text an ein Programm senden, z.b. an den Texteditor.
( Später natürlich auch noch mehr... )
So hab mich im Internet erkündigt und hab mir das Porgramm WinID gezogen, das anscheinend nötig ist, um die Funktion richtig zu steuern.
So wenn ich mit der Maus über den Texteditor rübergehe, kommt diese Ausgabe.http://gdies.gd.funpic.de/Unbenannt.jpg
Hab schon gegoogelt und nach einer erklärung von sendmessage gesucht, aber hab nicht wirklich was gefunden.
Kann mir da vllt. einer weiterhelfen und evetuell erklären wie ich die Funktion anwenden kann.
Brauche nur einen kleinen Anfang, damit ich selber weiter ausprobieren/forschen kann, danke.mfg
Goodies
-
-> WinAPI-Forum
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Zuerst suchst du mit FindWindow das Parentwindow also z.B. FindWindow (NULL, "Notepad"); Notepad ist hier der Fenstertitel, könntest auch den 1. Parameter mit dem Klassenamen füllen, das ist wesentlich praktischer wenn sich der Titel verändert. Dann kannst du mit FindWindowEx weitere Elemente des Parentwindows finden. Dann einfach alles noch an das gefundene Element schicken!
Hier mal ein Beispiel wie man Keydown an Notepad sendet!
#include <windows.h> int main() { HWND WindowHandle; HWND ButtonHandle; WindowHandle = FindWindow("Notepad", NULL); ButtonHandle = FindWindowEx(WindowHandle, 0, "Edit", ""); SendMessage (ButtonHandle, WM_KEYDOWN, VK_DELETE, 1L); return 0; }Das sollte ein Backspace an das Programm senden. Gibt aber oft Probleme die man sich nicht erklären kann, musst viel Errors abfangen, aber beim ICQ Chatfenster z.B. funktioniert das einwandfrei.
Edit: Benutz Spy++ das gibts kostenlos und ist von Microsoft.
-
Ok danke,aber wie ist es mir möglich die Enter-Taste an den Editor zu schicken?
-
Siehe FAQ.
-
Des Fenster hat aber nicht den Focus.