Bonjour,
Je cherche comment mettre l'ordinateur en veille, en vraie veille, comme si on avait faitAinsi les ventilateurs etc s'eteindront.demarrer/arreter/mettre en veille
Merci,
Harry
Bonjour,
Je cherche comment mettre l'ordinateur en veille, en vraie veille, comme si on avait faitAinsi les ventilateurs etc s'eteindront.demarrer/arreter/mettre en veille
Merci,
Harry
la commande windows est la suivante
Avec un ShellExecute, ca devrait faire l'affaire !
Code : Sélectionner tout - Visualiser dans une fenêtre à part rundll32.exe powrprof.dll,SetSuspendState![]()
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
Ahh, merci, ça m'a l'air prometteur, je teste des que possible et je vous dis si c'est bon.
Oui, c'est un b on début, tu connaitrais pas par hazard la version 'Non prolongée' qu'on peux reveiller en bougeant la souris mais qui coupe CPU/ventilos etc mais garde la ram et reseau activé ?
Désolé je n'ai pas ca sous la main![]()
Mais ca risque d'être plus compliqué que la mise en veille prolongée puisque il s'agit d'un config. spécifique de mise en veille légère.
Je te conseille de faire une recherche sur
[rundll32.exe powrprof.dll]
pour voir éventuellement quels sont les paramètres dispo derriere, pour appeler une config spécifique.
Après, si la config spécifique doit être construite via le prog, j'imagine qu'il faut rechercher via la base de registre.
bon courage !
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
une petite recherche sur DVP renvoi :
http://c.developpez.com/faq/bcb/?pag...illeordinateur
8)
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Ahh, pas mal Laurent dardenne, par contre c'est du C++ et pas du Delphi![]()
Faudras que je teste voir si il y a un equivalent delphi.
Certes, mais il y a pas mal d'usage d'API dans la VCL. Un petit tour sur MSDN :Envoyé par Harry
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/power/base/setsystempowerstate.asp
Et hop !
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Envoyé par Harry
![]()
Donc voici le code C++ :
Hé bien le voici traduit en Delphi (si, si
Code : Sélectionner tout - Visualiser dans une fenêtre à part SetSystemPowerState(False,True);) :
Je viens de me payer un fou rire à en avoir mal au ventre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part SetSystemPowerState(False,True);![]()
![]()
Huhu, merci, je vais tester tout ça dès demain
Edit : Testé et... non, ca ne fais rien du tout
N'a aucun effet, je vais revenir aux Shellexecute. Dommage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SetSystemPowerState(False, True);
Me renvoie toujours 2 (Dossier non trouvé je crois).
Code : Sélectionner tout - Visualiser dans une fenêtre à part i := ShellExecute(0, 'open', PChar('rundll32.exe powrprof.dll,SetSuspendState'), nil, nil, SW_SHOWNORMAL);
Vous avez une idée du Shellexecute à utiliser dans ces cas ?
J'ai deja essayé plein de combinaisons (chemins complets, etc.. ) et un mailto marche bien, la commande marche bien dans 'Demarrer/executer'.
Merci
Je pense que tu ne passes pas les bon paramètres.
la syntaxe en principe est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ShellExecute( 0, 'Open', PChar( SProg ), PChar( SCommande ),PChar( SRepertoire ), FenetreMode );
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
Effectivement tu peux rencontré une erreur:
renvoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 program veille; {$APPTYPE CONSOLE} uses SysUtils,Windows; begin if not SetSystemPowerState(True,False) then writeln(SysErrorMessage(GetLastError)); Readln; end.
Il faut, comme indiquer dans MSDN, modifer les droits les droits de l'appelant par l'appel de AdjustTokenPrivileges .Le client ne dispose pas d'un privilége nécessaire
Voici un exemple dans un contexte similaire :
http://delphi.developpez.com/faq/?pa...StopRunWindows
Je te laisse l'adapter.
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Effectivement c'est mieux en passant par les API
J'en profite pour dire un merci à Laurent. Car la fonction citée m'interesse aussi.
AdjustTokenProvilege permet bien de mettre les droits admins sur le poste, même si le user est loggué avec des droits restreints ?
Est-ce que cela signifie, que si pendants ce temps là (pdt que l'appli à ajusté les droits), le user peut faire tout ce qu'il veut sur sa machine, ou les droits ne sont donnés que pour le programme lancé ?
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
Pas du tout, ce serait un peu trop facile.Envoyé par TicTacToe
Je ne suis pas trop à l'aise sur ce sujet mais il me semble que les droits à ajouter sont dépendants du profile utilisateur.
En procédant ainsi, un utilisateur ne peut avoir plus de droits qu'on lui autorise. Il s'agit de droits au niveau du process et pas de l'utilisateur mais la limite est assez mince.
Bien qu'un programme équivalent à SU d'unix soit possible sous NT mais là je ne pas les compétence pour aller + loin.
Et justement cela manque ce type de tuto sur DVP !
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
En effet,ca fonctionne poue mettre en veille prolongée, je vais maintenant rechercher pour la veille légere et l'extinction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ShellExecute(0, 'Open', PChar('rundll32.exe'), PChar('powrprof.dll,SetSuspendState'),PChar('C:\WINDOWS\System32'), SW_SHOWNORMAL);
Pour l'autre système : je suis en administrateur !
J'updaterais ce thread avec les informations complémentaires le moment voulu.
Partager