SendMessage
Moderatoren: crack, Krüsty, Marwin
Folgendes Problem:
Ich habe ein Programm mit Keyboard Hook und will darin eine Nachricht an das aktive Fenster schicken,
und zwar an die Stelle, an der der Cursor steht:
invoke GetFocus
mov hFocus,eax
invoke SendMessage, hFocus, WM_SETTEXT, 0, ADDR text
Es funktioniert wunderbar z.B. bei NOTEPAD, WORDPAD, EXCEL usw. Aber nicht bei WORD.
Ich habe auch schon versucht, aus der Zwischenablage mit WM_PASTE zu senden. Geht überall,
nur nicht bei WORD.
Kann mir jemand helfen ???
Ich habe ein Programm mit Keyboard Hook und will darin eine Nachricht an das aktive Fenster schicken,
und zwar an die Stelle, an der der Cursor steht:
invoke GetFocus
mov hFocus,eax
invoke SendMessage, hFocus, WM_SETTEXT, 0, ADDR text
Es funktioniert wunderbar z.B. bei NOTEPAD, WORDPAD, EXCEL usw. Aber nicht bei WORD.
Ich habe auch schon versucht, aus der Zwischenablage mit WM_PASTE zu senden. Geht überall,
nur nicht bei WORD.
Kann mir jemand helfen ???
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Reagiert das "Textfenster" auf andere für z.B. Edit-Controls typische Nachrichten, wie z.B. WM_GETTEXT, WM_GETTEXTLENGTH uä.?
Wenn nicht, dann würde ich denken, dass Offices zugehörige Fensterprozedur diese Nachrichten nicht verarbeitet, sondern programmintern vielleicht eigene Nachrichten vereinbart wurden. Eins steht fest, das ist keine der vordefinierten Fensterklassen, oder sollte ich mich irren? [_[
Marwin
Wenn nicht, dann würde ich denken, dass Offices zugehörige Fensterprozedur diese Nachrichten nicht verarbeitet, sondern programmintern vielleicht eigene Nachrichten vereinbart wurden. Eins steht fest, das ist keine der vordefinierten Fensterklassen, oder sollte ich mich irren? [_[
Marwin
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Was WM_GETTEXT zurückliefert hängt immer von der entsprechenden Fensterklasse ab. Bei einem Buton ist es die Aufschrift, bei einer Combobox der Inhalt des Editfeldes, bei einer Edit-Control der Text, welcher enthalten ist, bei Programmfenstern ist es der Fenstertitel (bei Notepad also z.B. Unbenannt - Editor, zumindest unter WinXP). Es ist also recht unterschiedlich.
Woher weißt du, dass du nicht das richtige Fensterhandle erhältst? Hast du es zusätzlich mit dem Wert verglichen, welcher ein Spy zurückliefert?
Marwin
Woher weißt du, dass du nicht das richtige Fensterhandle erhältst? Hast du es zusätzlich mit dem Wert verglichen, welcher ein Spy zurückliefert?
Marwin
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Hallo Uli,
wie vorher schon einmal erwähnt glaube ich, dass Microsoft eine eigene Fensterklasse für das Textfeld erzeugt hat (mit welcher aus der Perspektive der Programmierer sicher einfacher und effektiver gearbeitet werden kann). Diese reagiert nun nicht auf die Standardnachrichten, sondern (nur?) auf Word-interne Nachrichten.
Das Wetter ist heute bei uns etwas wechselhaft. Im Moment sieht es eher so aus, als ob es bald anfängt zu regnen.
Marwin
wie vorher schon einmal erwähnt glaube ich, dass Microsoft eine eigene Fensterklasse für das Textfeld erzeugt hat (mit welcher aus der Perspektive der Programmierer sicher einfacher und effektiver gearbeitet werden kann). Diese reagiert nun nicht auf die Standardnachrichten, sondern (nur?) auf Word-interne Nachrichten.
Das Wetter ist heute bei uns etwas wechselhaft. Im Moment sieht es eher so aus, als ob es bald anfängt zu regnen.