![]() |
Programm das mit ShellExecute gestartet wurde wieder beenden
Hai,
wie kann ich denn am einfachsten ein Programm das ich aus meiner Anwendung heraus mit ShellExecute gestartet habe wieder beenden? |
Re: Programm das mit ShellExecute gestartet wurde wieder bee
Starte mit CreateProzess und schicke dem Programm ein WM_CLOSE (oder so).
|
Re: Programm das mit ShellExecute gestartet wurde wieder bee
Schwimm mal in die Code-Library, da findest Du ein Beispiel von Luckie zu CreateProzess - und dann halt WM_CLOSE, wie Tom schon eingetippt hat.
...:cat:..- |
Re: Programm das mit ShellExecute gestartet wurde wieder bee
Zitat:
Ich habe mir Luckies Funktion RunProcess geschnappt und rufe das so auf:
Delphi-Quellcode:
Tut aber nix. Sicher wieder ein riesen Denkfehler von mir :ops:
procedure TForm1.Button2Click(Sender: TObject);
var programm : String; begin if (OpenDialog1.Execute) then begin programm := OpenDialog1.FileName; RunProcess (PChar(programm), SW_SHOW, FALSE, @hWnd) end; end; procedure TForm1.Button3Click(Sender: TObject); begin SendMessage (hWnd,WM_CLOSE,0,0); end; P.S.: hWnd ist global als DWord deklariert! |
Re: Programm das mit ShellExecute gestartet wurde wieder bee
Du bekommst eine ProzessID zurück und kein Fensterhandle!!!
Mit OpenProcess ein Processhandle davon holen und mit TerminateProcess den Prozess beenden. |
Re: Programm das mit ShellExecute gestartet wurde wieder bee
Oder wenn du das "Shellexecute-Feeling" nicht aufgeben willst: Nimm ShellExecuteEx.
|
Re: Programm das mit ShellExecute gestartet wurde wieder bee
Moin Sharky,
und auch für Chewies Vorschlag findest Du was in der Code-Libary. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz