Nachrich an ein anderes Programm senden
-
Hallo,
Ich bin neu in der WinAPI und habe deshalb eine Frage: Wie kann ich eine Nachricht an ein Child-Fensters eines anderen Programms senden?
-
Das ist sehr einfach, dafür gibt es ene API-Funktion namens:
SendMessage(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
-
Window-Handle rausbekommen (z.B. FindWindow) und dann mittels "SendMessage" (WM_APP+ x)... oder auch eine Message die via "RegisterWindowMessage" registriert wurde.
Falls Du Daten verschicken willst, solltest Du WM_COPYDATA verwenden...
Oder sonst halt der Hinweis auf prinzipiell Interprocess Communication:
http://msdn.microsoft.com/library/en-us/ipc/base/interprocess_communications.asp
-
Ich vergaß ... sicherlich braucht Du das Handle (HWND) des Child-Fensters.
Dafür gibt es die Funktion:HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);
lpWindowName = der Fenstertitel des zu findenden Fensters.
-
RR schrieb:
Ich vergaß ... sicherlich braucht Du das Handle (HWND) des Child-Fensters.
Dafür gibt es die Funktion:HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);
Das findet nur Top-Level-Fenster - um das zugehörige ChildWindow zu finden, kannst du FindWindowEx verwenden:
HWND par=FindWindow(NULL,"Anwendung"/*hier der Name des Programm-Hauptfensters*/); HWND chld=FindWindowEx(par,NULL,NULL,"Dokument1"/*hier der Name des Child-Fensters*/); SendMessage(chld,WM_XY,wp,lp);
-
das stimmt ... mea culpa ...