![]() |
Explorer.exe wie Taskmanager beenden und öffnen?
Hey leutzz,
Also, ich brauche einen weg explorer.exe zu killen ohne damit es gleich danach wieder auftaucht, Ich habs mit einer KillTask function gemacht, doch danach hat es die explorer.exe gleich wieder geöffnet. Doch wenn ich sie per Task manager beende bleibt sie auch weg. Wie würdet ihr das machen? Ich hab auch schon gesucht und das gefunden: ![]() Doch ExploreWClass wird immer als geschlossen angezeigt und CabinetWClass nur wenn ich einen ordner auf hab (z.B arbeitsplatz) Und da ich es ja jetzt geschlossen hab, mit welcher funktion sollte ich es wieder öffnen ? reicht da
Delphi-Quellcode:
? Oder nicht?
winexec('explorer.exe', SW_SHOWNORMAL);
Was habt ihr fuer ideen? :zwinker: |
Re: Explorer.exe wie Taskmanager beenden und öffnen?
Wähle ein anderes Programm für die Shellfunktionalität von Windows
|
Re: Explorer.exe wie Taskmanager beenden und öffnen?
winexec solltest du auf keinen Fall verwenden da diese seit einigen Jahren (laut Hilfe) schon depricated ist und es dir somit passieren kann das nach dem nächsten Update diese Funktion nicht mehr geht.
Nimm lieber ShellExecute oder CreateProcess. Und wenn du den Explorer wie der Taskmanager abschießen willst verwende TerminateProcess |
Re: Explorer.exe wie Taskmanager beenden und öffnen?
Ok. Danke fuer eure schnellen antworten!
Hab jetzt eine perfekte function zu CreateProcess gefunden. Doch kann leider keine zu TerminateProcess finden :( Wer hätte eine passende? |
Re: Explorer.exe wie Taskmanager beenden und öffnen?
Zitat:
|
Re: Explorer.exe wie Taskmanager beenden und öffnen?
Zitat:
|
Re: Explorer.exe wie Taskmanager beenden und öffnen?
Ich weiß ja nicht, wo nach du gesucht hast, aber
![]() |
Re: Explorer.exe wie Taskmanager beenden und öffnen?
Ich find da nur KillTask, und wenn ich diese function benütz wird explorer.exe sofort nach dem killen wieder geöffnet, so wie das windows immer macht wenn explorer.exe mal abkackt.
Doch wenn man ihn mit dem taskmanager schliest, bleibt er auch zu. Edit: hab jetzt diese function mal versucht:
Delphi-Quellcode:
Doch wie gesagt, er öffnet sich nach dem beenden gleich wieder.
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; DOch dann hab ich in der linie
Delphi-Quellcode:
die 0 am ende zu einer 1 gemacht, jetzt gehts.
TerminateProcess(OpenProcess(Process_Terminate, False, Prozess.th32ProcessID), 0);
thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 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