Prog. im Hintergrund starten - Focusproblem
-
Hallo!
Wenn ich in der STARTUPINFO ein entsprechendes SW_HIDE Flag setze per und CreateProcess() ein Programm starte, wird es auch tatsächlich im Hintergrund ausgeführt, das Problem ist hierbei nur:
Sobald es startet, verliert der User den momentanen Eingabefokus.Wie kann man das verhindern?
Ich hätte schon versucht, es in einem eigenen Desktop zu starten, allerdings muss ich da erst wieder SetThreadDesktop() verwenden, damit sich im gestarteten Prog was tut und der Fokus ist erst wieder weg.Irgendwelche Vorschläge?
Danke
matthias
-
Ich würd vorm Starten des Programmes den Fokus holen und nach dem Programmstart Fokus wieder setzen:
SetFokus
GetFokus
-
Danke fürs reply..
Ein simples Get/SetFocus funktioniert nicht, ich müsste zusätzlich mit AttachThreadInput() usw. arbeiten, um das gehts aber eigentlich gar nicht:
Das gestartete Programm wird sowieso gleich wieder abgeschossen und somit springt der Fokus sowieso wieder zurück zur vorigen Anwendung... das ist aber furchtbar lästig, wenn man z.B. in Word einen Text schreibt und jede Minute springt für 2 sek der Fokus weg, weil ich im Hintergrund eine iexplorer Instanz starte.
Die exakt formulierte Problemstellung lautet also:
"Wie starte ich per CreateProcess() einen Prozess, ohne daß dieser den Eingabefokus erhält?"
-
Schon das Flag SW_SHOWNOACTIVATE probiert?