TIC TAC SHUT DOWN - OUTIL SERVANT À ÉTEINDRE VOTRE PC EN UN TEMPS DONNÉ (SLEEP T

cyberrob50 Messages postés 6 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 28 février 2007 - 23 févr. 2007 à 22:56
quentinix Messages postés 98 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 28 juin 2020 - 28 nov. 2011 à 16:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41621-tic-tac-shut-down-outil-servant-a-eteindre-votre-pc-en-un-temps-donne-sleep-timer

quentinix Messages postés 98 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 28 juin 2020
28 nov. 2011 à 16:30
je chercher ceci depuis un sert un moment en language pascale
merci sa m'aide vraiment
cs_cupidonihack Messages postés 1 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 1 avril 2007
1 avril 2007 à 15:03
et alor mon brave!^^ je te passe le bonjour et puis je te felicite pour ton programme car meme s'il est "bourin" il a le merite de fonctionner.
@+ Cupidonihack allias twain
cyberrob50 Messages postés 6 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 28 février 2007
28 févr. 2007 à 18:11
La clause "Windows" est déja dans mon programme.
Aussi, j'ai été curieux de remplacer SE_DEBUG_NAME par 'SeShutdownPrivilege' mais ça n'a rien donné.

N'y aurait-il pas un problème?

Enfin, pour l'instant je fais toujours ramer mon programme avec le Shutdown sous Windows XP.
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
28 févr. 2007 à 10:19
La fonction "AjustePrivileges" en question ne fera rien de visible. Elle permet juste à l'application d'obtenir un peu plus de droit afin de pouvoir autorisé l'application à éteindre le système.
D'ailleur le privilège 'SeShutdownPrivilege' permet d'obtenir des droits pour tout ce qui est de l'arret/démarrage
Quand tu va utiliser ma fonction "FermerWindows", "AjustePrivileges" est automatiquement appelé afin d'obtenir ces droits avant d'executer la fonction d'extinction.

Normalement çà fonctionne.

Sinon à la ligne :
LookupPrivilegeValue( nil, SE_DEBUG_NAME, TP.Privileges[0].Luid );
met directment :
LookupPrivilegeValue( nil, 'SeShutdownPrivilege', TP.Privileges[0].Luid );
pour pas te prendre la tête avec les constantes.

Sinon j'ai du oublier de te le preciser, mais dans la clause uses tu dois ajouter : "Windows"

A+
cyberrob50 Messages postés 6 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 28 février 2007
28 févr. 2007 à 03:28
Est-ce que c'est normal le fait que ce qui est écrit en haut (Privileges) ne marche pas chez moi? J'ai Delphi7 (information).
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
26 févr. 2007 à 16:53
ah oui j'oubliais... tu peux utiliser avec çà deux types de privilège :
SE_DEBUG_NAME = 'SeDebugPrivilege';
SE_EXIT_WINDOWS = 'SeShutdownPrivilege';

Bon Code
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
26 févr. 2007 à 16:52
Essai çà :


{ Arrette ou reboot le systeme }
procedure FermerWindows( bReboot: boolean );
begin

// Ajuste privilèges
AjustePrivileges;

// Reboot ou redemarre ?
if bReboot = True then
ExitWindowsEx( EWX_REBOOT or EWX_FORCE, 0 ) // Redemarre
else
ExitWindowsEx( EWX_SHUTDOWN or EWX_POWEROFF or EWX_FORCE , 0 ); // Extinction
end;

{ Libère des privilèges pour effectuer certianes actions }
procedure AjustePrivileges;
var
hToken : THandle;
TP : TTokenPrivileges;
PrevToken : TTokenPrivileges;
PSsize : DWORD;
begin
OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken );
LookupPrivilegeValue( nil, SE_DEBUG_NAME, TP.Privileges[0].Luid );
TP.PrivilegeCount := 1;
TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, False, TP, SizeOf(TP), PrevToken, PSsize );
end;
cyberrob50 Messages postés 6 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 28 février 2007
26 févr. 2007 à 15:15
ExitWindowsEx ne marche pas sous Delphi 7 chez moi.
Sinon en attendant de trouver un meilleur moyen d'éteindre l'ordinateur, j'ai un petit peu amélioré mon script.
A relâcher plus tard.
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
26 févr. 2007 à 08:38
Stop les trucs de porc, j'en ai marre de voir çà :

ShellExecute(0,'OPEN', Pchar('c:\windows\system32\shutdown.exe'), pchar ('-s -t 0'), Nil, 1);

utilise plutot çà pour éteindre le PC :

ExitWindowsEx( EWX_SHUTDOWN or EWX_POWEROFF or EWX_FORCE , 0 );

- Tout n'est pas indenté.
- Le système de language peut largement être améliorer
- Comparaison horaire un peu FreeStyle

A améliorer :-)

++
cyberrob50 Messages postés 6 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 28 février 2007
23 févr. 2007 à 22:56
Je m'excuse pour la police d'écran, elle n'a pas été prise avec le lot .zip
Veuillez vous rendre sur le site www.dafont.com et prenez la police du nom de
TRANSPONDER AOE

Encore une fois, je m'excuse.
Rejoignez-nous