Announcement

Collapse
No announcement yet.

Wie kann ich eine mit CreateProcess gestartete Application wieder schließen ???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich eine mit CreateProcess gestartete Application wieder schließen ???

    Hiho ...
    Folgender Quelltext will nicht so wie ich will:

    var exe, parameter : string; <BR>
    aSI : TStartupInfo;<BR>
    aPI : TProcessInformation;<BR>
    begin<BR>
    exe := 'C:\Games\Half-Life\hl.exe';<BR>
    parameter := '-console -game cstrike';<BR>
    FillChar(aSI, SizeOf(aSI), 0);<BR>
    aSI.cb := SizeOf(aSI);<BR>
    aSI.wShowWindow := SW_Show;<BR>
    CreateProcess(PChar(exe), PChar(parameter), nil, nil, false, Normal_Priority_Class, nil, PChar(ExtractFilePath(exe)), aSI, aPI);<BR>
    HandleMe := aPI.hThread;<BR>
    <BR>
    Den Handle den ich wiederbekomme ist in meinem Fall 16 gewesen. Wenn ich das Fenster der Application dann suchen lasse bekomme ich Handle 1260 wieder. Über den Handle kann ich die Application auch schließen ... Soweit so gut. Ich will die Application aber über den Handle schließen, den CreateProcess mir gibt (von mir aus auch eine anderer Rückgabewert von CreateProcess). Geht das überhaupt und wenn ja, wie ???

    Bedankt im Vorraus

    Ciao Hagen

  • #2
    Hiho ...<BR>
    Ich habe das Problem nun gelöst. <BR>
    <BR>
    TerminateProcess(HandleMe, WM_CLOSE)<BR>
    <BR>
    Wobei HandleMe zu aPI.hProcess anstatt zu aPI.hThread wird. Das klappt soweit. Das Problem ist nur das mein Programm auch alle Programme die es gestartet hat auch minimieren soll. Wie kann ich das realisieren ??? Ich habe nur die Informationen die CreateProcess mir liefert zur Verfügung. Hat das irgentjemand eine Idee ???<BR>
    <BR>
    Ciao Hage

    Comment

    Working...
    X