System Shutdown



  • Hallo leute!

    Ich suche einen Befehl mit dem man den Pc nach der Funktion hinunterfahren kann!

    Interessant wäre natürlich mit einem Zähler. Also es würde z.B. von 20 hinunterzählen und wenn man will kann man diesen vorgang durch ein Enter stoppen. Ich hab mal den Befehl: System ("shutdown") gesehen aber der Funzt ned bei mir!

    Hat jemand ned Idee?

    Peace 🙄 😕



  • Mit Standard C++ geht das nicht.

    Da du wahrscheinlich unter Windows programmierst, benutz mal die Suche im WinAPI-Forum (such z.B. nach ExitWindowsEx).



  • Den Dialog mit einer Progress-Bar und einem Abbrechen-Button musst du dir schon selber basteln, aber SetTimer wird dir dabei sicher nützlich sein 😉



  • Hi,

    cd9000 schrieb:

    Mit Standard C++ geht das nicht.

    Echt, ich denke du kannst einen BufferOverflow erzeugen 😉
    Im normalfall stürtzt der PC ab und fährt herunter, aber
    das ist wohl eher nicht deine absicht 😃

    cu max



  • also ich habe mal so eine theorie: system("shutdown");
    sollte eigentlich gehen nur muss ich irgendwie noch das beim header irgendwie deklarieren. Ich hab das mal hier im Forum gesehen aber, shit weiss nicht mehr wie das geht! ich mache win32 anwendungen, da ich noch am üben bin. bin noch kein Genie 😉

    Aber vielen dank nochmals für die Antworten werde ich mal nachgucken.

    mfg s'coudy!



  • skater151 schrieb:

    ich mache win32 anwendungen

    ...und genau deshalb solltest Du es "richtig" machen und nicht mit solch halbgewalkten Lösungen a la "system()"



  • #include "stdafx.h"
    #include <windows.h>
    #include <winuser.h>
    #include <stdlib.h>
    
    bool Down() 
    	{ 
    
    		//Windows NT 
    		HANDLE hToken;
    		TOKEN_PRIVILEGES tkp;
    		OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
    		LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
    		tkp.PrivilegeCount=1;
    		tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
    		AdjustTokenPrivileges(hToken,false,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
    
    	    return ExitWindowsEx(EWX_POWEROFF ,0); 
    
    }
    
    int main()
    {
        Down();
    	return 0;
    }
    

    edit: Bitte Code-Tags verwenden.



  • Warum denn nicht ganz einfach die "InitiateSystemShutdown"-Funktion ??? 🙄


Anmelden zum Antworten