Arrêt automaitque de windows

Signaler
Messages postés
21
Date d'inscription
mardi 27 août 2013
Statut
Membre
Dernière intervention
7 juillet 2018
-
Messages postés
21
Date d'inscription
mardi 27 août 2013
Statut
Membre
Dernière intervention
7 juillet 2018
-
Bonjour,
Pouvez-vous me donner des codes delphi qui permettent l'arrêt automatique de windows (sans demande de confirmation) ?

2 réponses

Messages postés
16118
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 juillet 2021
555
Bonjour,
Merci de garder à l'esprit que CodeS-SourceS est une communauté d'entraide. Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter également que nous ne faisons pas dans le "tout cuit". Soit tu trouves ton bonheur dans la partie source du site, soit à l'aide de ton moteur de recherche favori. Ici, nous aidons volontiers sur des sujets techniques précis.

ici et des conseils d'écriture des messages.

ici comment utiliser la coloration syntaxique.

Et enfin, le plus important




Merci donc de reformuler ta demande en respectant ces quelques points.
Messages postés
21
Date d'inscription
mardi 27 août 2013
Statut
Membre
Dernière intervention
7 juillet 2018

Merci Whismeril pour ces conseils. Je remercie aussi ceux qui vont m'aider à résoudre ce problème.
Messages postés
56
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
22 juillet 2014

Bonjour,
J'ai fait la même recherche il y a peu et j'ai trouve ceci :
http://delphi.developpez.com/faq/?page=systemedivers#StopRunWindows

et en faisant une très légère modification pour l'utiliser comme je voulais


Function ArretSystem(uFlags: UINT): Boolean;
Var
Token: THandle;
TokenPrivilege: TTokenPrivileges;
Outlen : Cardinal;
Error:Dword;

Const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';

Begin
Result:=False;
// Récupère les informations de sécurité pour ce process.
if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, Token)
then Exit;
try

FillChar(TokenPrivilege, SizeOf(TokenPrivilege),0);
// Valeur de retour
Outlen := 0;
// Un seul privilége à positionner
TokenPrivilege.PrivilegeCount := 1;

// Récupère le LUID pour le privilége 'shutdown'.
// un Locally Unique IDentifier est une valeur générée unique jusqu'a ce
// que le système soit redémarré
LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, TokenPrivilege.Privileges[0].Luid);

// Positionne le privilége shutdown pour ce process.
TokenPrivilege.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(Token, False, TokenPrivilege, SizeOf(TokenPrivilege),nil, OutLen);

Error:=GetLastError;
If Error <> ERROR_SUCCESS
then Exit;

// Arrête le système
if ExitWindowsEx(uFlags, 0)=False
then Exit;
Result:=True;

finally
CloseHandle(Token);
end;
end;


après :
éteint le PC
ArretSystem(EWX_SHUTDOWN + EWX_FORCEIFHUNG);
redémarre le PC
ArretSystem(EWX_REBOOT + EWX_FORCEIFHUNG);

(testé sous XP)
--
Messages postés
21
Date d'inscription
mardi 27 août 2013
Statut
Membre
Dernière intervention
7 juillet 2018

Bonjour,
Merci pour votre réponse drexl :) Je vais les essayer.