Wie explorer.exe beenden?



  • Hallo,
    ich möchte diesen Prozess beenden, habe aber bisher keine Lösung gefunden.
    Wenn ich den Prozess mit TerminateProcess() kille, wird er von Windows neu gestartet. Beende ich ihn allerdings vom Taskmanager aus, startet er nicht neu - was macht der Taskmanager anders?
    Was wäre eine alternative zu TerminateProcess?
    Alternativ wäre mir auch recht, dass der explorer beim Booten von vornherein garnicht startet ... ließe sich das unter WinXP für einen Benutzer einrichten?

    MfG



  • Black Shadow schrieb:

    Alternativ wäre mir auch recht, dass der explorer beim Booten von vornherein garnicht startet ... ließe sich das unter WinXP für einen Benutzer einrichten?

    Klar. In der Registry kannst du unter HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon einen REG_SZ-Eintrag namens "Shell" erstellen, in den du das Programm einträgst, daß anstelle des Explorers als Shell gestartet wird.



  • Hi,

    ich hab dir den Code einfach mal vom anderem Thread reinkopiert. Ich weis aber nicht, ob es funktioniert:

    void stop(char exitprozess[]) 
    { 
    DWORD dw; 
    HANDLE hSysSnapshot = NULL; 
    HANDLE h_pro; 
    PROCESSENTRY32 proc; 
    THFUNC pProcess32First=(THFUNC)GetProcAddress(GetModuleHandle("kernel32.dll"),"Process32First"); 
    THFUNC pProcess32Next=(THFUNC)GetProcAddress(GetModuleHandle("kernel32.dll"),"Process32Next"); 
    if(pProcess32First&&pProcess32Next) 
        { 
            proc.dwSize = sizeof(proc); 
            hSysSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 ); 
            pProcess32First(hSysSnapshot,&proc); 
            proc.dwSize = sizeof(proc); 
    
            do{ 
                if(!strcmp(proc.szExeFile,exitprozess)){ 
                      h_pro=OpenProcess(PROCESS_ALL_ACCESS, TRUE, proc.th32ProcessID); 
                      GetExitCodeProcess(h_pro,&dw); 
                      TerminateProcess(h_pro,dw); 
                } 
            }while(pProcess32Next(hSysSnapshot,&proc)); 
        } 
    } 
    
    int main() 
    { 
    stop("explorer.exe"); //explorer wird beendet 
    return 0; 
    }
    

    Have Fun,

    MfG mikey.



  • @mikey: Wie oben beschrieben, wenn ich den explorer so kille kommt er sekunden später wieder ... ich hab mich jetzt nicht schlau gemacht welcher prozess ihn wieder startet aber er kommt wieder ^^. was komischerweise nicht der fall ist, wenn ich ihn über den Taskmanager kille.

    @audacia: Cool, sowas ist perfekt!

    Vielen Dank,
    Black Shadow



  • Ups, SRY da hab ich wohl nicht genau geguckt. ... Hab nur den Code gesehen, und ihn hierher kopiert.

    MfG mikey.


Anmelden zum Antworten