Du kannst es mit deinem eigenen Programm gern ausprobieren.
Denn es ist auch im Taskmanager der Unterschiet zwischen den Tabs "Prozesse" und "Details".
In Prozesse wird ein
WM_CLOSE ans Hauptfenster WM_QUIT an den Prozess (Hauptthread) gesendet,
während in Details ein TerminateProcess ausgeführt wird.
Und ein Klick auf's [X], bzw. das Schließen im Taskleisten-Button sendet das WM_CLOSE ans dortige Fenster.
(in uralten Delphis, bzw. bei Application.MainFormOnTaskbar=False, landet das von der Taskleiste nicht im MainForm.Handle, sondern geht an Application.Handle)
Entweder du merkst dir vom
CreateProcess das ProzessHandle oder die ProzessID
oder via
GetProcessTimes bekommst du die Startzeit.
Wenn deine Variablen compilerabhängige "Strings" sind, warum machst du es dir nicht einfach und nimmst dafür auch die compilerabhängigen Typen und Funktionen?
Delphi-Quellcode:
// nicht die W/Wide oder A/Ansi, sondern die OHNE
...
ShExecInfo.lpFile := PChar(Filename);
ShExecInfo.lpParameters := PChar(Para);
ShExecInfo.lpDirectory := PChar(ExtractFileDir(Filename));
...
Result := ShellExecuteEx(@ShExecInfo);