[C++] Funktion um Win2000 / XP herunterzufahren

Peter

Lt. Commander
Registriert
Mai 2001
Beiträge
1.957
Funktion um Win2000 / XP herunterzufahren

Es gibt viele Programme, z.B.mp3 / mp4 Encoder, die Windows nach getaner Arbeit selbstständig herunterfahren können.

Wie heissen die MFC-C++-Funktionen , die ich benötige, um ein Windows 2000 oder XP herunterzufahren?
 
ich weiß leider keine direkte antwort auf deine frage, aber du könntest ja vielleicht auch einfach ein vb-script-datei ausführen lassen, die windows dann runterfährt...

greets, weird
 
Hi,

muss es eine MFC Funktion sein, oder darf ich dir mit einer Windows API helfen?

Variante 1:

bool ShutdownSystem(unsigned int uFlags)


{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
bool bOkShutdown;
OSVERSIONINFO osv;
const char szShutdown[] = "SeShutdownPrivilege";
osv.dwOSVersionInfoSize=sizeof(osv);
GetVersionEx(&osv);



if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT) {


if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken) ) {
LookupPrivilegeValue("",szShutdown, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
bOkShutdown = (AdjustTokenPrivileges(hToken,0,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0)!=0);
}
}


else {
bOkShutdown=true;
}


if(bOkShutdown) {
return (ExitWindowsEx(uFlags,0)!=0);
}
return false;
}

Variante 2:


#include windows.h
#include iostream.h


void main()


{
int x;
cout<<"1 to shutdown"<<endl,
<<"2 to restart"<<endl,
<<"3 to logoff"<<endl<<endl;
do


{
cout<<"what would you like to do: ";
cin>>x;
}while((x <=0) || (x >= 2))
if(x==1)


{
ExitWindows(EWX_SHUTDOWN,0);//shutdown command
}
if(x==2)


{
ExitWindows(EWX_REBOOT,0);//restart command
}
if(x==3)


{
ExitWindows(EWX_LOGOFF,0);//log off command
}
}

Gruß

Toaster
 
Wow

Das ist ja ein ganzes Programm :)
Eine API-Variante ist mir sogar lieber als eine MFC-Version.

Werde das in den nächsten Tagen mal "verbauen"...

Danke dir! :daumen:
 
Zurück
Oben