Rechner per Code neustarten (war: Finde den Code nicht raus)
-
#include <shellapi.h>Sagt zumindest die MSDN. Nutz mal die Foren-Suche mit ShellExecute. Da müsste es Unmengen von Beiträgen zu geben.

-
hallo,
#include <shellapi.h>das habe ich jetzt eingefügt. Jetzt kommt auch keine Fehlermeldung mehr, aber wen ich auf den Button klick passirt nix!
julia
-
Hast du mal nachgeschaut ob shutdown existiert? Ich habe es auf meinem System (W2k) noch nicht gefunden.
-
Hallo Julia,
ich habe bisher noch nicht neu gebootet jedoch das System herruntergefahren mit dem nachsthenden Code den du auch in den FAQs finden kannst.HANDLE hToken; // Handle für Prozesstoken TOKEN_PRIVILEGES tkp; // Zeiger auf die Tokenstruktur // Token für diesen Prozess holen if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { // MessageBox(NULL, "Fehler beim OpenProcessToken", // "Error", MB_ICONEXCLAMATION | MB_OK); // return; } // LUID für die Shutdown Privilege holen LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Shutdown privilege für diesen Prozess setzen AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); // System herunterfahren und File-Buffer auf HD sichern ExitWindowsEx(EWX_SHUTDOWN /*| EWX_FORCE*/ , 0);Ich gehe mal davon aus, dass du "EWX_SHUTDOWN" durch einen anderen Wert ersetzen mußt den du in der Hilfe oder in den FAQs im Forum finden kannst.
Viel Erfolg
Evi48
-
hallo
ja ich habe schon nachgeschaut: sie ist vorhanden!
???
dave
-
evi48 schrieb:
Viel Erfolg
Evi48hallo,
danke bei mir geht der Code. Ich musste nichts ersetzten. Vielen Dank
Knöpfel Julia
ps:

-
das is ein command befehl !?
probiert doch mal in der cmd "shutdown -help"
-
Wenn ich shutdown (egal in welcher Form) eingebe kommt immer "Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden"
-
Hallo Julia,
prima, weiterhin viel Spaß.@Braunstein
So weit ich ich das verstanden habe muß man sich grundsätzlich erst die Privilege besorgen um den Shutdown ausführen zu können.Evi48
-
shutdown funktioniert nur unter XP. W2K glaub schon nichtmehr... bei mir zumindest nicht (Arbeitsplatz). WinNT und Win9x kannste damit auf jeden fall vergessen.
- Windoof
-
Hallo,
//per Button-Click Computer Beenden//
Dieser Code kann beim Button (CODE) eingefügt werden:
C/C++ Code: HANDLE hToken; // Handle für Prozesstoken TOKEN_PRIVILEGES tkp; // Zeiger auf die Tokenstruktur // Token für diesen Prozess holen if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { // MessageBox(NULL, "Fehler beim OpenProcessToken", // "Error", MB_ICONEXCLAMATION | MB_OK); // return; } // LUID für die Shutdown Privilege holen LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Shutdown privilege für diesen Prozess setzen AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); // System herunterfahren und File-Buffer auf HD sichern ExitWindowsEx(EWX_SHUTDOWN /*| EWX_FORCE*/ , 0);Sobald man das Programm startet, und auf den Button klickt, wird der Computer Beendet. Falls man z.b mehrere Benutzer auf dem Pc hat, und einzelne Benutzer noch Progrtamme geöffnet haben, wird eine Meldug kommen:
Möchten Sie den Vorgang vortsetzten.
//oder so was?!//

Dieser Code sollte eigentlich bei jedem von euch funktionieren?!
danke @ evi48---
Ok, was bei mir nicht funktionierte war der Beispiel Thread 1. - das mit dem eincluden u.s.w
Beim ersten Beispiel eben das mit dem eincluden u.s.w, funktionierte bei mir zwar nicht, aber propiert doch mal bei euch.
Braunstein 10:46:11 10.11.2004 Titel: Zitieren Hast du mal nachgeschaut ob shutdown existiert? Ich habe es auf meinem System (W2k) noch nicht gefunden.@ all: Das würde ich auch zuerst mal suchen....
ok
Viele Grüsse David
ps: Ich habe noch einen anderen Code um per Button klick den Pc zu Beenden: muss ihn aber noch suchen
. Ist noch eine andere Variante! 