Explorer.exe neu starten. (system() und WinExec())



  • Hallo Forum,

    aus bestimmten Gründen muß ich ein Programm schreiben das die Icons im Startmenu und der Schnellstartleiste neu lädt. Ein praktikabler Weg ist denke ich den Windows Explorer abzuschießen und ihn dann neu zu starten. Momentan habe ich keine Install Rechte, deshalb kann ich nur den TCC Compiler verwenden. Ich habe also keine shellapi.h bzw ShellExecute().

    #include <windows.h>
    #include <stdlib.h>
    
    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
    
    	WinExec("taskkill.exe /f /im explorer.exe", SW_NORMAL); // Alten Explorer schließen.
    	system("explorer.exe"); // Neuen E starten
    	WinExec("explorer.exe /e,C:\\", SW_NORMAL); // Nun den Datei Explorer mit C: anzeigen.
    }
    

    Warum hält mein Programm beim system() Aufruf an? Erst wenn ich die Dosbox schließe wird der normale Datei Explorer aufgerufen und das Programm beendet sich.

    Vielen Dank

    abcd



  • Hat sich erledigt, habe es mit CreateProcess gemacht.


  • Mod

    Wenn Du CreateProcess hast, hast Du auch ShellExecute.


Anmelden zum Antworten