Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Shutdown

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.11.2006, 16:11 Uhr
Cpp



Hi,
ich habe ein Problem mit der direkten sys Steuerung und zwar möchte ich einen pc herunterfahren lassen sobald das Programm geöffnet wird.Könnte mir bitte irgendwer ein bisschen source code hilfe geben?!(Konsole)
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.11.2006, 16:22 Uhr
CppProgrammer




C++:
#include <windows.h>

void ShutdownSystem(UINT uFlags = EWX_SHUTDOWN)
{
    HANDLE token; TOKEN_PRIVILEGES tokenpriv;
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &token);
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tokenpriv.Privileges[0].Luid);
    tokenpriv.PrivilegeCount = 1;
    tokenpriv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(token, false, &tokenpriv, 0, (PTOKEN_PRIVILEGES)NULL, 0);
    ExitWindowsEx(uFlags, 0);
    //   1. EWX_LOGOFF: Logoff the current user.
    //   2. EWX_RESTART: Simply restart the computer.
    //   3. EWX_SHUTDOWN: Shut down but 'AT' style.
    //   4. EWX_POWEROFF: Shut down but 'ATX' style.
    //   5. EWX_FORCE: Force.
    //   6. EWX_REBOOT: REBOOT.
}


Dieser Post wurde am 14.11.2006 um 16:26 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.11.2006, 19:17 Uhr
~blutiger anfänger
Gast


hi,
bin ein anfänger programmier erst seit 1 jahr
wollte das selbe wissen hilft mir auch weiter aber wie muss ich das nun in die konsole einfügen das es funktioniert
habe noch vor der void funktion ein
int main()
{

}
eingefügt weil ansonsten eine fehlermeldung kam

allerdings kommt jetzt das

eine Deklaration fehlt und
das ein Syntax fehlt und
das das letzte } unerwartet ist

versteh nicht was da falsch sein soll
danke schon mal im voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.11.2006, 19:43 Uhr
xXx
Devil



C++:
#include <windows.h>

void ShutdownSystem(UINT uFlags = EWX_SHUTDOWN);

int main(void)
{
    ShutdownSystem();
    return 0;
}

void ShutdownSystem(UINT uFlags)
{
    HANDLE token; TOKEN_PRIVILEGES tokenpriv;
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &token);
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tokenpriv.Privileges[0].Luid);
    tokenpriv.PrivilegeCount = 1;
    tokenpriv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(token, false, &tokenpriv, 0, (PTOKEN_PRIVILEGES)NULL, 0);
    ExitWindowsEx(uFlags, 0);
    //   1. EWX_LOGOFF: Logoff the current user.
    //   2. EWX_RESTART: Simply restart the computer.
    //   3. EWX_SHUTDOWN: Shut down but 'AT' style.
    //   4. EWX_POWEROFF: Shut down but 'ATX' style.
    //   5. EWX_FORCE: Force.
    //   6. EWX_REBOOT: REBOOT.
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.11.2006, 15:59 Uhr
~blutiger anfänger
Gast


danke mal ich hätte eigentlich selber wissen sollen das man funktionen nicht in main ausführt und das man einen prototyp setzen muss aber ich hab mal wieder nicht nachgedacht

nur noch ein weiteres problem wenn ich das programm ausführ kommt dann eine fehlermeldung das zuerst das programm beendet werden muss bevor windows beendet werden kann und wenn
ich dann auf "ok" klick das er zuerst das programm beenden soll und dann windows bleibt er hängen. Kann man das nicht auch irgendwie umgehen das er das von alleine kann?
wäre mir sehr hilfreich
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.11.2006, 22:36 Uhr
msp



probiers mal hiermit, das geht bei mir auf jeden fall so


C++:
#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;
}


Dieser Post wurde am 22.11.2006 um 22:51 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.11.2006, 16:12 Uhr
xXx
Devil


Öhm hatte jetzt keine Zeit das wirklich zu vergleichen... Aber der Code ist bisauf das du nen bool returnst identisch Das einzige was du andershast, ist der Parameter mit dem du ExitWindowsEx aufrufst...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: