Externes Programm im Vordergrund starten.
-
Hallo zusammen,
ich starte in meinem Programm ein externes Programm (sever2go) mit ShellExecute(). Ich möchte, dass das externes Programm im Vordergrund startet - geht das?
ShellExecute(NULL, "open", neuerPfad.c_str() , NULL, NULL, SW_SHOWNORMAL);mfg
-
Mit Standard-C++ sicherlich nicht. Vielleicht mit WinAPI, aber dann bist du im falschen Forum...
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Naja ich glaub ich würde das Programm mit CreateProcess oder mit ShellExecute und dann den handle mit FindWidnows oder so und dann mit SetForegroundWindow das Fenster in den Vordergrund holen...
-
Andrew3726 schrieb:
Naja ich glaub ich würde das Programm mit CreateProcess oder mit ShellExecute und dann den handle mit FindWidnows oder so und dann mit SetForegroundWindow das Fenster in den Vordergrund holen...
Oh etwas viel für einen Anfäge

Ich nutzte ja ShellExecute() - wie nutzte ich da denn den handle mit Findwindow?
ShellExecute(NULL, "open", neuerPfad.c_str() , NULL, NULL, SW_SHOWNORMAL);
-
Naja das Handle kriegst du über den Fenstertitel.
Guck dir FindWindow (MSDN) an.
Dann holst du dir das Handle so:HANDLE hDeins = FindWindow(NULL, "Fenstertitel..."); SetForegroundWindow(hDeins);Es gibt noch andere Methoden, aber vllt geht es ja schon so.
-
SetForegroundWindow geht so nicht, da nlinkt es nur in der Taskleiste.... Du musst noch etwas mehr machen... das ist aber in der Doku erläutert...
-
Vielleicht auch ein Vorschlag:
Erst das vorher laufende Programm vom Bildschirm holen, z.B. mit ShowWindow(hwnd,SW_HIDE).
Dann - wie vorher beschrieben - das neue Programm mit vollem Zugriff auf den Bildschirm starten.