Entwickler-Ecke

Windows API - Programm mit WinExecAndWait32 zentriert starten


bigmasterdenis - Mi 19.12.07 15:00
Titel: Programm mit WinExecAndWait32 zentriert starten
Hallo Leute!

Mit WinExecAndWait32(FileName: string; Visibility: Integer) starte ich aus meinem Prog ein anderes. Das Problem dabei ist nur, dass das Fenster des aufgerufenen Programms irgendwo in der Ecke auftaucht. Ich hätte es aber gerne in der Mitte des Desktops.

Hat jemand zufällig eine Idee was man da machen könnte?


Danke und Gruß


gispos - Do 20.12.07 20:07

SetWindowPos, brauchst dazu aber das Handle zum Fenster.

Gruß gispos


bigmasterdenis - Fr 21.12.07 15:48

Handle wäre natürlich nicht schlecht. Aber wie kriege ich das Handle zu diesem Fenster?


Christian S. - Fr 21.12.07 15:53

Wenn ich den Namen der Funktion WinExecAndWait32 richtig deute, wartet die doch, bis das Programm wieder geschlossen ist. Wann willst Du dann noch die Fensterposition setzen?


Wotan89 - Di 25.12.07 13:09

Das Fenster kriegt man mit FindWindow oder mit EnumWindows(an gleicht die PID's der Fenster mit der PID des erstellten Prozesses ab). Nimm doch statt WinExecAndWait32() CreateProcess(), setze dann mit SetWindowPos() die Position des Fensters und warte dann mit WaitForSingleObject().