Seite 1 von 1

Focus in eigenes Programm "zurückholen"

Verfasst: Mo, 03. Jul 2017 8:49
von mini990
Schönen guten Morgen,
ich habe folgendes Problem:
Ich starte über runshell ein Programm.
Dieses wird zum Programmende "versteckt", also in die Taskleiste gelegt.
Mein aufrufendes Programm steht wieder im Vordergrund.
Der Tastaturfocus jedoch noch im Fremdprogramm.
Gibt's hier einen Trick?

Gruß Stefan

Re: Focus in eigenes Programm "zurückholen"

Verfasst: Mo, 03. Jul 2017 10:17
von brandelh
eventuell mit SetAppFocus() auf ein vorhandenes Control verweisen

Re: Focus in eigenes Programm "zurückholen"

Verfasst: Mo, 03. Jul 2017 10:49
von mini990
Schon probiert. geht net.
Ebenso :tofront und was ich noch alles im Forum so gefunden habe.
Bis auf die Funktion von pablo. Die verstehe ich nicht ganz...

Gruß Stefan

Re: Focus in eigenes Programm "zurückholen"

Verfasst: Mo, 03. Jul 2017 13:58
von DelUser01
mini990 hat geschrieben: Mo, 03. Jul 2017 8:49Mein aufrufendes Programm steht wieder im Vordergrund. Der Tastaturfocus jedoch noch im Fremdprogramm.
RunShell( cPar , cPrg , .T. , .T. ) dann sollte das gestartete Programm von selbst im Hintergrund verschwinden und Dein aufrufendes Programm im Vordergrund sein - mit Focus.

Du kannst ja noch probieren:

RunShell(...)
ShowWindow( nHWND , SW_SHOWNORMAL )
SetForegroundWindow( nHWND )

wobei nHWND der Handle des aufrufenden Fensters ist, z.B.
nHWND := oCrt:GetHWND()