tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
870
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    paddymann paddymann ist offline Mitglied Silber
    Registriert seit
    Apr 2005
    Beiträge
    83
    Hi!
    Wie kann ich mit einem cpp Program meinen PC herunterfahren? Geht das irgendwie mit system - shutdown oder so ähnlich
    Danke.
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Und täglich grüßt das Murmeltier....


    Unter XP musst du dir erst die Rechte holen um das zu machen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    HANDLE hToken;
    TOKEN_PRIVILEGES tPrivs;
     
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, &hToken);
    LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tPrivs.Privileges[0].Luid);
    tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    tPrivs.PrivilegeCount = 1;
    AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)NULL, 0);
     
    ExitWindowsEx(EWX_POWEROFF+EWX_FORCE, 0);


    mfg
    umbrasaxum
     

  3. #3
    PraxX PraxX ist offline Mitglied
    Registriert seit
    May 2005
    Beiträge
    14
    Ich hab das grade auch versucht aber mein Compiler bringt mir da zig fehlermeldungen
    Ich wolllte das in eine If Anweisung reinpacken
    Also:
    if(a==1)
    Dann den PC heruntrfahren

    aber wenn ich den Code von oben unter der if Anweisung einfüg dann kommen eben diese Fehler
    Geändert von PraxX (21.05.05 um 13:55 Uhr)
     

  4. #4
    cesupa cesupa ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Beiträge
    329
    welche Fehler ?
     

  5. #5
    Avatar von Tasm-Devil
    Tasm-Devil Tasm-Devil ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Ort
    Maxdorf
    Beiträge
    137
    also der code von umbrasaxum funktioniert bei mir und den meisten hier im Forum einwandfrei. Wenn er bei dir wirklich nicht geht dann möchte ich mal wissen was du für nen Compiler benutzt.

    P.S. umbrasaxum rullz
     
    C macht es einfach, sich in den Fuß zu schießen; C++ erschwert es, aber wenn man es tut, bläst es einem das ganze Bein weg." —Bjarne Stroustrup .-.-.-.-.-.-.
    „Ich habe mir immer gewünscht, dass mein Computer so einfach zu bedienen sein sollte wie mein Telefon. Mein Wunsch wurde wahr. Ich weiß nun nicht mehr, wie mein Telefon funktioniert.“ —Bjarne Stroustrup

  6. #6
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Ja ich rule!


    mfg
    umbrasaxum
     

  7. #7
    PraxX PraxX ist offline Mitglied
    Registriert seit
    May 2005
    Beiträge
    14
    Ich habe das Min GW developer studio
    Das hier steht in bei hilfe:
    GCC is the GNU Compiler Collection, which currently contains front ends for C, C++, Objective-C, Fortran, Java, and Ada,as well as libraries for these languages (libstdc++, libgcj,...).

    Das sind die Fehler:
    main.cpp:11: error: `HANDLE' undeclared (first use this function)
    main.cpp:11: error: (Each undeclared identifier is reported only once for each
    function it appears in.)
    main.cpp:11: error: syntax error before `;' token
    main.cpp:12: error: `TOKEN_PRIVILEGES' undeclared (first use this function)
    main.cpp:14: error: `GetCurrentProcess' undeclared (first use this function)
    main.cpp:14: error: `TOKEN_ADJUST_PRIVILEGES' undeclared (first use this
    function)
    main.cpp:14: error: `TOKEN_QUERY' undeclared (first use this function)
    main.cpp:14: error: `hToken' undeclared (first use this function)
    main.cpp:14: error: `OpenProcessToken' undeclared (first use this function)
    main.cpp:15: error: `tPrivs' undeclared (first use this function)
    main.cpp:15: error: `LookupPrivilegeValue' undeclared (first use this function)
    main.cpp:16: error: `SE_PRIVILEGE_ENABLED' undeclared (first use this function)
    main.cpp:18: error: `FALSE' undeclared (first use this function)
    main.cpp:18: error: `PTOKEN_PRIVILEGES' undeclared (first use this function)
    main.cpp:18: error: syntax error before `__null'
    main.cpp:20: error: `EWX_POWEROFF' undeclared (first use this function)
    main.cpp:20: error: `EWX_FORCE' undeclared (first use this function)
    main.cpp:20: error: `ExitWindowsEx' undeclared (first use this function)
     

  8. #8
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Hast du die windows.h includiert?!


    mfg
    umbrasaxum
     

  9. #9
    PraxX PraxX ist offline Mitglied
    Registriert seit
    May 2005
    Beiträge
    14
    ah key thx
     

  10. #10
    PraxX PraxX ist offline Mitglied
    Registriert seit
    May 2005
    Beiträge
    14
    also #include <windows.h>

    jetzt bekomm ich noch diese fehler:
    main.cpp:12: warning: unused variable `void*hToken'
    main.cpp:15: error: `hToken' undeclared (first use this function)
    main.cpp:15: error: (Each undeclared identifier is reported only once for each
    function it appears in.)
     

  11. #11
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Zeig mal deinen Code.


    mfg
    umbrasaxum
     

  12. #12
    PraxX PraxX ist offline Mitglied
    Registriert seit
    May 2005
    Beiträge
    14
    Ich muss damit einen Kumpel verarschen Ist so ein Angeber

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    #include <iostream>
    #include <windows.h>
    using namespace std;
     
    int main() {
        cout<<"Hello Guys, this is a Calculater which shows you your Boarderskill"<<endl;
        cout<<"First"<<endl;
        cout<<"Do you think you are boarding well? (type '1' for Yes or '2'for No, then hit Enter"<<endl;
        int a;
        cin>>a;
    if(a==1)
        HANDLE hToken;
    TOKEN_PRIVILEGES tPrivs;
     
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, &hToken);
    LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tPrivs.Privileges[0].Luid);
    tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    tPrivs.PrivilegeCount = 1;
    AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)NULL, 0);
     
    ExitWindowsEx(EWX_POWEROFF+EWX_FORCE, 0);
    else
        cout<<"You're not selfconfident enough, run the program again!"<<endl;
        return 0;
    }
     

  13. #13
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Du hast den Code zum runterfahren nciht in geschweifte Klammern gesetzt!
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    #include <iostream>
    #include <windows.h>
     
    using namespace std;
     
    int main() {
        cout<<"Hello Guys, this is a Calculater which shows you your Boarderskill"<<endl;
        cout<<"First"<<endl;
        cout<<"Do you think you are boarding well? (type '1' for Yes or '2'for No, then hit Enter"<<endl;
        int a;
        cin>>a;
        if(a==1)
        {
            HANDLE hToken;
            TOKEN_PRIVILEGES tPrivs;
     
            OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, &hToken);
            LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tPrivs.Privileges[0].Luid);
            tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
            tPrivs.PrivilegeCount = 1;
            AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)NULL, 0);
     
            ExitWindowsEx(EWX_POWEROFF+EWX_FORCE, 0);
        }
        else
            cout<<"You're not selfconfident enough, run the program again!"<<endl;
        return 0;
    }


    mfg
    umbrasaxum
     

  14. #14
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY ist fei schon gefährlich da wäre TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY besser weil es könnte ja theoretisch sein dass in den beiden defines einige Bits gleich gesetzt ist.


    Dein Problem ist
    if(a==1)
    HANDLE hToken;
    Dass HANDLE hToken ist jetzt nur definiert wenn a==1 und nur für eine Zeile !
    Du musst HANDLE hToken; ganz oben in deinem Code angeben.
     

Ähnliche Themen

  1. Shutdown Dos
    Von SCIPIO-AEMILIANUS im Forum Microsoft Windows
    Antworten: 7
    Letzter Beitrag: 22.10.07, 20:42
  2. shutdown
    Von chrisjahl im Forum Java
    Antworten: 19
    Letzter Beitrag: 02.07.07, 13:15
  3. Shutdown
    Von xmailer im Forum Visual Basic 6.0
    Antworten: 21
    Letzter Beitrag: 22.10.05, 12:01
  4. shutdown
    Von wpb im Forum Linux & Unix
    Antworten: 4
    Letzter Beitrag: 06.07.05, 13:35
  5. shutdown.exe
    Von Pardon_Me im Forum Microsoft Windows
    Antworten: 15
    Letzter Beitrag: 29.07.04, 08:03