Zur Zeit offnes Fenster benutzen
-
hi,
wie kann ich das aktuelle Fenster was gerade aufgeruffen ist in das HWND laden. ich habs mit
HWND Hwnd = GetForegroundWindow();versucht aber das geh igentwie nicht.
-
Inwiefern geht das nicht

-
wenn ich dann zum testen das hier gemacht habe, is nix passiert
#include <windows.h> HWND Hwnd = GetForegroundWindow(); SendMessage(Hwnd,WM_KEYDOWN,31,0); SendMessage(Hwnd,WM_KEYUP,31,0); SendMessage(Hwnd,WM_KEYDOWN,32,0); SendMessage(Hwnd,WM_KEYUP,32,0); SendMessage(Hwnd,WM_KEYDOWN,33,0); SendMessage(Hwnd,WM_KEYUP,33,0);eigentlich sollte 123 im anderen fenster stehn.
-
warum sollte dann 123 im anderen fenster stehn?
du kannst ja einfach mal im debug modus schaun, ob hWnd nach dem aufruf von SetForegroundWindow() 0 is...
wenn ja, dann läuft da was schief
wenn nicht dann mach mal das:
SendMessage( hWnd, WM_SETTEXT, 0, ( LPARAM ) "123" );
-
SendMessage( hWnd, WM_SETTEXT, 0, ( LPARAM ) "123" );benennt das fenter um, ich will das in dem fenster 1 2 3 degrückt wird
-
achso, du sagtest es soll 123 im fenster stehen.
wenn du jetzt 123 drückst, dann muss das nicht zwangsläufig in jedem fenster stehen...
-
nein, nich in jedem.
wenn ich das programm starte soll er in ein anderes fenster(z.b. notpad) 1 2 3 rein tippen.
-
GetForegroundWindow holt Dir ein Handle auf das HAUPT-Fenster der Anwendung.
WM_SETTEXT setzt da dann den TITEL der Anwendung (wie Du ja schon bemerkt hast).Das MultiLine-EditControl bei z. B. Notepad ist ein CHILD-Window des HAUPT-Fensters.
Du müßtest also den Handle zum CHILD-Window holen und dann per SendMessage Deine Nachrichten an jenes Handle senden.
-
hm kann man nicht einfach einen tastendruck auf der tastatur für eine andere anwendung simulieren?
-
Leor schrieb:
hm kann man nicht einfach einen tastendruck auf der tastatur für eine andere anwendung simulieren?
Doch, z.B. mit SendInput.
-
wie geht das?
-