Rechner Ausschalten
-
Ich habe mir ein kleines Prog. gebastelt um mein Rechner zu einer bestimmten Zeit Auszuschalten. Mein Problem besteht darin das es unter Win 2000 prima läuft aber XP weigert sich. Kann mir jemand Helfen?
#include<iostream> #include <conio.h> #include <time.h> #include <windows.h> using namespace std; int main() { int m_Min; int m_Std; int m_Aus =0; cout <<"Bitte Endzeit eingeben"<<endl; cout<<"Stunde : "; cin >>m_Std; cout <<"Minuten : "; cin >>m_Min; cout <<"Endzeit = "<<m_Std<<":"<<m_Min<<endl; for (;;) { time_t CurrentTime; time(&CurrentTime); //GMT in Sekunden struct tm TimeStruct = *(localtime(&CurrentTime)); //Zeit in einzelne Komponenten int Hours = TimeStruct.tm_hour; int Minutes = TimeStruct.tm_min; if ((m_Min == Minutes) & (m_Std == Hours)) /*{ cout <<"AUS!!!"<<endl; // nur Zum Testen !!! break; }*/ { ExitWindowsEx(EWX_POWEROFF, 0); break; } } return 0; }
-
Das ist ein WinAPI-Problem.
-
code_pilot schrieb:
Das ist ein WinAPI-Problem.
du bist aber ein blitzmerker :p
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
// ilFlag: // EWX_LOGOFF Schließt alle Anwendungen und loggt den Benutzer aus // EWX_POWEROFF Schaltet den Rechner aus (sofern von der Hardware unterstützt) // EWX_REBOOT Bootet den Rechner neu // EWX_SHUTDOWN Fährt Windows herunter, ohne neu zu booten bool ShutdownWindows(UINT ilFlag) { bool blRetVal = true; // Rückgabewert TOKEN_PRIVILEGES stTokenPriviledges; HANDLE hProcToken; // Prozess Token // auf NT-Platform prüfen OSVERSIONINFO stVerInfo; stVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&stVerInfo); // falls NT/2000: if(stVerInfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { // Prozess Token besorgen blRetVal = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hProcToken); if(blRetVal) { // LUID für Shutdown Privilege besorgen blRetVal = LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &stTokenPriviledges.Privileges[0].Luid); stTokenPriviledges.PrivilegeCount=1; stTokenPriviledges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; } if(blRetVal) { // Shutdown privilege aktuellem Prozess geben blRetVal = AdjustTokenPrivileges(hProcToken, false, &stTokenPriviledges, 0, (PTOKEN_PRIVILEGES)NULL, 0); } } // Windows beenden: if(blRetVal) blRetVal = ExitWindowsEx(ilFlag, NULL); return blRetVal; }