Fenster fokusieren aber nich in den Vordergrund heben?

Keine_Ahnung

Mitglied

Moin
Da mein Programm mit keybd_event etwas in ein anderes Fenster schreibt, muss ich dieses zwingend mit SetForegroundWindow fokusieren.
Gibt es andere Möglichkeiten es zu fokusieren, sodass das Fenster nicht in den Vordergrund gehoben wird?
 
Zuletzt bearbeitet:
Ich bin mir jetzt nicht ganz sicher, aber übergibt nicht SetFocus(HWND) den Keyboardfocus an an anders Fenster ohne es zwingend in den Vordergrund zu heben?
Vielleicht hilft dir das ja weiter.

Gruß Byteblaster
 
Edit: Zu früh gefreut? Irgendwie gehts doch net :D

Ähm ich hab jetz sowas:
Code:
HWND hWin = FindWindow(NULL, "xyz - Editor");
SetFocus(hWin);
keybd_event(...);
Jetz sag ich ihm ja immer, bevor er eine Taste drückt, dass er den Focus darauf setzen soll, aber das macht er net richtig :(
 
Zuletzt bearbeitet:
mhm.. wenn du FindWindow(..) einsetzt gehe ich davon aus das du das Fenster nicht selber öffnest, sonst wäre dir ja der Handle bekannt. Dann wird es auch mit SetFocus(HWND) nicht funktionieren, denn nach der MSDN, Zitat: "The window must be associated with the calling thread's message queue."! Das ist ja dann nicht der Fall.

Aber vielleicht funktioniert das:
die ThredID des Zielfensters herausfinden mittels GetWindowThreadProcessId(HWND,LPDWORD)
ThreadID des eigenen Fensters ermitteln mittels GetCurrentThreadId(VOID)
und dann mittels AttachThreadInput(DWORD,DWORD,BOOL) die Inputs verbinden. Und wenn bis hier nix fehlgeschlagen ist dann SetFocus(HWND) ausführen.
Vielleicht hilft das ja etwas weiter, oder jemand weiß eine einfachere Lösung?

Gruß Byteblaster
 
Zurück