Entwickler-Ecke
Windows API - Prozess minimiert starten mit CreateProcess
mk2 - Mi 28.09.05 20:04
Titel: Prozess minimiert starten mit CreateProcess
Hallo,
ich möchte ein Programm mit CreateProcess starten und zwar minimiert. Wie das mit dem minimieren theoretisch geht, hab ich verstanden -glaub ich- , nur leider funktioniert's nicht., das programm startet zwar aber nicht minimiert. Naja, hier ist jedenfalls der Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| FillChar(proc_infoVST, sizeof(TProcessInformation), 0); FillChar(startinfoVST, sizeof(TStartupInfo), 0); startinfoVST.cb := sizeof(TStartupInfo); startinfoVST.dwFlags := STARTF_USESHOWWINDOW; startinfoVST.wShowWindow:= SW_SHOWMINNOACTIVE; if CreateProcess(nil, 'c:\temp\lm-9\lm-9.exe', nil, nil, false, CREATE_DEFAULT_ERROR_MODE + NORMAL_PRIORITY_CLASS, nil, nil, startinfoVST, proc_infoVST) then begin |
wenn jemand den Fehler sieht, wäre ich sehr dankbar. Oh, btw. BS ist Win XP home und programmiert wird in Delphi 4, falls das wichtig ist.
Vielen Dank
uall@ogc - Mi 28.09.05 20:15
benutz mal SW_SHOWMINIMIZED und verknüpfungen am besten mir OR und nicht mit +
mk2 - Do 29.09.05 13:29
Danke, hab ich gemacht, hat aber nix geholfen. Andere Ideen?
LG mk2
uall@ogc - Do 29.09.05 14:11
vielleicht liegts hier dran
Quelltext
1:
| For GUI processes, wShowWindow specifies the default value the first time ShowWindow is called. The nCmdShow parameter of ShowWindow is ignored. In subsequent calls to ShowWindow, the wShowWindow member is used if the nCmdShow parameter of ShowWindow is set to SW_SHOWDEFAULT. |
kannst ja mal tetsen ob das mit ner konsolenanwendung funktioniert
Nico80 - Mi 09.08.06 14:20
Möchte das Thema nochmals aufgreifen.
Ich möchte eine andere Anwendung mit CreateProcess minimiert starten lassen.
Mit einem Programm wie notepad.exe funktioniert alles einwandfrei.
Aber wenn ich eine stinknormale Delphi-Anwendung (also nur ein Formular mit Standardeinstellungen - Delphi 2006) starte, funktioniert es nicht?!?!
Habe auch schon CreateProcess mit ShellExecute ersetzt, aber das Problem bleibt bestehen.
Schon mal Danke für die Hilfe.
OldGrumpy - Mi 09.08.06 15:20
Wenn das Programm sich selbst nen Modus setzt, dann hast Du (bzw. Dein Programm) an der Stelle halt nix mehr zu melden, denn der CreateProcess-Aufruf legt ja nur den Wert für den Programmstart fest. Wenn dann im Programm sowas wie Application.Restore() steht (oder was auch immer), isses Essig mit minimiert starten. Entweder dem Prozess dann halt alle naselang ne entsprechende Messsage schicken oder halt damit leben :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!