Windows ausschalten
-
Hallo!
ich möchte gern ein konsolenprogramm schreiben, das windows ausstellt.
habe das schon mit
system("shutdown -s");probiert, aber das funktioniert nur bei administratoren!
hat jemand eine andere idee?
würde mich freuen

-
mh
-
programmierer_nr:1346 schrieb:
Hallo!
ich möchte gern ein konsolenprogramm schreiben, das windows ausstellt.
habe das schon mit
system("shutdown -s");probiert, aber das funktioniert nur bei administratoren!
hat jemand eine andere idee?
Es wird dir nie gelingen sowas zu schreiben, ohne dass der Admin es vorher bestätigen muss.
Das hört sich außerdem nach einer Art "Virus" an.
-
virus???
nee ich dachte eher an ein automatisches ausschalttool für meine kinder!
-
poster schrieb:
virus???
nee ich dachte eher an ein automatisches ausschalttool für meine kinder!
Für solche Sachen gibts nichts, was man damit umgehen kann.
Für sowas braucht man einfach Admin-Erlaubnis.
-
wenns schon so Systemintegriert ist, warum schreibst du dann nicht gleich eine *.bat Datei, und da shutdown -s rein? Ich finde solche Probleme kann man gut durch solche Skripte lösen.
-
also ohne adminrechte geht erstmal nix. mit kannst du dich aber an die winapi wenden: http://msdn2.microsoft.com/en-us/library/aa376883.aspx
-
oder du nimmst mein programm was ich vor ein paar monaten bereits schrieb
da kannst du genau angeben wann windows herunterfahren/neustarten/ausloggen soll - und minimiert verschwindet das programm in den trayadmin rechte sind nicht erforderlich - und alle laufenden programme werden ohne nachfrage beendet
-
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.
-
-
och das ist doch so einfach ey!!!! einfach
#define STRICT
#include <windows.h>const char szWitz[] = "\soll windows sich ausschalten?\"";
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
int iAntwort = MessageBox(NULL, szWitz,"LOL ",
MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1);if (IDOK == iAntwort)
{WinExec("shotdown.exe -s -t 00", SW_NORMAL);
}
else if (IDCANCEL == iAntwort)
{}
return 0;
}
-
Ratz schrieb:
WinExec("shotdown.exe -s -t 00", SW_NORMAL);
genau! Einfach Windows erschießen.

-
:D:D:D:D:D:D LOLTJA: kill`em all

-
Naja hier eine Möglichkeit:
#include <windows.h> #pragma comment(lib, "Advapi32.lib") #pragma comment(lib, "user32.lib") void SHUTDOWN() { 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); } int main() { SHUTDOWN(); return 0; }
-
So geht's:
hPrcess = GetCurrentProcess(); OpenProcessToken(hPrcess,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken); LookupPrivilegeValue(NULL,"SeShutdownPrivilege",&lUid); sPrivileges.PrivilegeCount = 1; sPrivileges.Privileges[0].Luid = lUid; sPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,0,&sPrivileges,sizeof(sPrivileges),NULL,NULL); ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF|EWX_FORCEIFHUNG,0); OnCancel(); return;Meine Homepage: http://members.inode.at/anton.zechner/az/index.html