![]() |
Wie anderes Programm beenden?
Hallo,
ich habe ein Problem beim Beenden eines Programmes von welchen ich dem Pfad habe. Es geht dabei um WinTV-Nexus, weis nicht ob das jemand kennt. Mit folgenden Code beende ich das Programm, Problem ist aber, das der Ton noch zu hören ist obwohl das Programm als Prozess nicht weiterläuft:
Delphi-Quellcode:
Kann mir da jemand helfen?
function KillProcess(const ExeName: String): Boolean;
var Prozess : TProcessEntry32; h : THandle; begin Result := False; Prozess.dwSize := SizeOf(Prozess); h := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); try If Process32First(h, Prozess) then Repeat If AnsiLowerCase(Prozess.szExeFile) = AnsiLowerCase(ExeName) then Result := TerminateProcess(OpenProcess(Process_Terminate, False, Prozess.th32ProcessID), 0); Until (Not Process32Next(h, Prozess)) or Result; finally CloseHandle(h); end; end; Gruß Mazel |
Re: Wie anderes Programm beenden?
Das Problem kenne ich von Spielen, welche nach dem Abschießen durch den Taskmanager noch immer ihre Musik abspielen. Nach ein paar Sekunden sollte das aber aufhören, oder läuft das bei dir ewig weiter? Ich kenne das besagte Programm nicht, bist du sicher das der Task den du beendest der einzige von diesem Programm ist? Vielleicht läuft da noch irgendwas von dem mit...
|
Re: Wie anderes Programm beenden?
Moin,
also im Taskmanager ist es verschwunden, und der Ton läuft ewig weiter. Eventuell habe ich was übersehen. Das Programm ist nicht auf meinem Rechner daher kann ich im Moment nicht nachsehen. Gruß Mazel |
Re: Wie anderes Programm beenden?
Ich kenne das Problem, von 'ner Pinacle Anwendung. Jedes ma, wenn die Anwendung abgestürzt ist, lief der Ton weiter. D.h. das du die Anwendung evtl. nicht Ordnungsgemäß beendest.
|
Re: Wie anderes Programm beenden?
Ich beende das Programm mit dem oben genannten Code. Den habe ich irgendwo aufgelesen :wink:
Gruß Mazel |
Re: Wie anderes Programm beenden?
Versuch lieber an das Fenter ein WM_CLOSE zu schicken.
|
Re: Wie anderes Programm beenden?
Hallo,
ja das werde ich versuchen. Ich habe aber an einigen Stellen gelesen, dass das nicht unbedingt klappen muss, was ich aber nicht verstehe. Weist du warum? Werde es auf jeden Fall heute noch versuchen. Gruß Mazel |
Re: Wie anderes Programm beenden?
Hi Mazel,
die Terminate-Funktion ist denkbar schlecht, da dll's die von dem Programm geladen wurden, die DLL z.B. die für den Ton zuständig ist, nicht über die Terminierung informiert werden. Sende stattdessen SendMessage(hProcess, WM_CLOSE,0,0) mfg benjamin |
Re: Wie anderes Programm beenden?
An das Fenster, an das Fenster. WM_ steht nicht um sonst für WindowsMessage und nicht für ProcessMessage. Desweiteren können Prozesse gar keine Nachrichten empfangen. ;)
|
Re: Wie anderes Programm beenden?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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 by Thomas Breitkreuz