![]() |
ShellExecuteEx Programm starten und beenden
hallo zusammen...
ich würde gerne mit ShellExecuteEx ein programm starten und wieder schließen... dazu hab ich den folgenden beitrag gefunden: ![]() das programm starte ich über einen button wo ich dne folgenden source hinterlegt habe:
Delphi-Quellcode:
ShExecInfo ist eine Globale Variable in meinem programm...
ShExecInfo.cbSize := sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS; ShExecInfo.lpVerb := 'open'; ShExecInfo.lpFile := PChar(edit8.text); ShExecInfo.lpDirectory := PChar(edit7.text); ShExecInfo.lpParameters := nil; ShExecInfo.nShow := SW_SHOWNORMAL; ShellExecuteEx(@ShExecInfo); über einen weitern button möchte ich jetzt das programm schließen
Delphi-Quellcode:
bloß leider klappt das schließen nicht... kann mir einer verraten warum?
CloseHandle(ShExecInfo.hProcess);
|
Re: ShellExecuteEx Programm starten und beenden
Was mir spontan einfällt (unter Berücksichtigung Deines anderen Threads): Du hast ja das Prozesshandle. Nun könntest Du mit EnumWindows alle Fenster durchgehen, mit GetWindowThreadProcessId auf Dein Prozesshandle prüfen und bei Übereinstimmung ein WM_CLOSE an das Fenster senden.
|
Re: ShellExecuteEx Programm starten und beenden
Zitat:
Delphi-Quellcode:
So, nu isa weg!
TerminateProcess(ShExecInfo.hProcess, 0);
CloseHandle(ShExecInfo.hProcess); lg. Astat |
Re: ShellExecuteEx Programm starten und beenden
TerminateProcess
![]() |
Re: ShellExecuteEx Programm starten und beenden
Hallo DeddyH, ahh, also ein "Cross Poster" :idea:
Delphi-Quellcode:
lg. Astat :cheers:
PostMessage(ShExecInfo.Wnd, WM_CLOSE, 0,0);
|
Re: ShellExecuteEx Programm starten und beenden
ja ich geb zu es war ein "cross post"
der kam aber auch nur zustande weil ich nach ner weiteren alternative gesucht habe ein 2. programm sauber zu beenden (ausser über sendmessage oder postmessage)... und das angeführte bsp. aus meinem ersten beitrag hatte ich falsch interpretiert... ich dachte das man über den handle vom shellexecuteex das programm auch sauber schließen kann... aber nachdem ich mir das beispiel zum 10. mal durchgelesen habe und ausprobiert habe ist mir aufgefallen das dat doch nich das macht was ich will... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 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