Exe Starten und Position und Größe angeben
-
Sorry, aber das zeug aus der msdn-libary check ich echt überhaupt nicht. Da wäre ein beispiel ganz gut
-
Hallo,
Wie Akari schon sagte, brauchst ShellExecuteEx statt ShellExecute. Da du den Handle des erzeugten Fensters für SetWindowPos benötigst.
Etwa so:SHELLEXECUTEINFO sei; ZeroMemory((PVOID)&sei, sizeof(sei)); // Infostruktur füllen sei.cbSize = sizeof(sei); sei.fMask = SEE_MASK_NOCLOSEPROCESS; sei.nShow = SW_SHOW; sei.lpVerb = TEXT("open"); sei.lpFile = TEXT("C:\\x29.exe"); // Name der Applikation //sei.lpParameters = TEXT("para"); falls Parameter erforderlich sind ShellExecuteEx(&sei); // Test ob Aufruf erfolgreich, sei.hProcess ist dann das Handle der aufgerufenen Applikation if(sei.hProcess) { // Setzen von Position und Größe, Parameter müssen vorher belegt werden SetWindowPos(sei.hProcess, HWND_TOP, top, left, width, height, SWP_NOSIZE); }Die Parameter mußt du halt entsprechend anpassen. Im von HEZ angegebenen Link ist auch ein Beispiel dabei.
Bei weiteren Nachfragen solltest du aber im WinAPI-Forum nachfragen.Ciao
-
Ach so, ShellExecute() gibt ja gar kein Handle zurück. Brauchst also doch ShellExecuteEx(). Na da wirst du um die MSDN wohl nicht rum kommen.
Ist wohl inzwischen ein WinAPI-Problem, vielleicht findest du in dem Unterforum was. (Suchen, nicht posten, wird ein Mod schon verschieben, wenns da rübergehört.)
//Oha, hab gar nicht bemerkt, dass sich da jemand reingedrängt hat...
-
Ok, danke für die Hilfe, leider wird aber nicht die Größe und die Position des Fensters geändert. Hab diese Frage jetzt schon im WinAPI-Forum gestellt.
Bye
-
Liest Du die Postings überhaupt?!?
HEZ schrieb:
(Suchen, nicht posten, wird ein Mod schon verschieben, wenns da rübergehört.)
-
Kann es sein, daß der Parameter "SWP_NOSIZE" an der Stelle fehl am Platz ist?
MSDN schrieb:
SWP_NOSIZE
Retains the current size (ignores the cx and cy parameters).Ansonsten müßte es irgendeine Möglichkeit geben, zu dem hProcess das Fenster herauszufinden *grübel*
-
Das SWP_NOSIZE hab ich da nur so hingeschrieben ohne auf die Wirkung zu schauen. Immerhin steht die Bedeutung der Parameter im angegebenen Link. Ich selber hab mit SetWindowPos noch nicht gearbeitet.
-
Naja, ich verwende SWP_SHOWWINDOW, damit funktionierts aber auch nicht
-
Du brauchst ein Fensterhandle, um etwas mit dem Fenster machen zu können, kein Prozesshandle. Also mußt du das erstmal rausfinden (versuch' mal FindWindow() dafür)
-
MartinN schrieb:
Hab diese Frage jetzt schon im WinAPI-Forum gestellt.
Und da geht's jetzt weiter.
In Zukunft aber bitte den Thread von einem Moderator in das gewünschte Forum verschieben lassen.