moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 2017
-
17 nov. 2008 à 11:31
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 2017
-
23 nov. 2008 à 12:54
Bonjour tout le monde,
Je veux créer une application qui éteint windows (vista home premium) au bout de x sec, minutes ou heure...
Pour ça j'ai créer un chronomètre à la fin duquel j'appelle ma fonction de fermeture.
Voila l'appelle de la fonction : eteindre("shutdown", "-s");
et la fonction elle-même:
public void eteindre(string FName, string Args)
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = true;
proc.StartInfo.FileName = FName;
proc.StartInfo.Arguments = Args;
}
en fait le problème est que rien ne se passe, je n'ai pas d'exception ni d'erreur!
Sinon dans la commande exécuter, ça marche normalement (comme ça: shutdown -s)
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 20173 18 nov. 2008 à 22:10
bonsoir,
J'ai trouvé une alternative...
Creer un raccourci (clique bouton droit puis nouveau et raccourci) avec comme emplacement "shutdown -s -t 00" ensuite je lance le raccourci par System.Diagnostics.Process.Start(@"emplacement du raccourci créer au-dessus");
Seul inconvénient, je dois avoir ce raccourci au même endroit sur toutes les machines ou mets ce programme!
Mais bon, c'est moindre mal.
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 20173 23 nov. 2008 à 12:54
Bonjour,
Ca y est, eureka... J'ai essayé avec wmi et ça fonctionne enfin comme je le veux... En ce qui concerne ExitWindowsEx, je dois encore faire des recherches parce que comme avec wmi ça marche, j'ai laissé de côté (temporairement) les autres pistes.
Ci-dessous, la solution avec d'abord l'assembly: using System.Management; (ne pas oublier la référence System.Management)
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 20173 17 nov. 2008 à 16:36
Re,
Le shutdown ne fonctionne toujours, pas, ça marche à partir de la commande exécuter du menu démarrer mais impossible de la faire marcher dans mon programme (programme qui fonctionne parfaitement sous windows xp)
Sinon pour la méthode avec :
[
DllImport("user32.dll", ExactSpelling true, SetLastError true)]
internalstaticexternbool ExitWindowsEx(
int Flag,
int Reason);
Même problème il ne se passe rien...
Est-il possible que ces commandes soient volontairement "désactivées"? Et dans ce cas comment pourrait-on les "réactiver"?
Merci quand-même pour vos aides et à la prochaine!
moi
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 20173 19 nov. 2008 à 11:52
Bonjour,
Effectivement, ça marche à merveille, ce qui n'avait pas fonction c'était l'appel de la fonction... Sinon je rappelle l'assembly: using System.Runtime.InteropServices;
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 nov. 2008 à 13:46
Regarde bien la documentation de ExitWindowsEx, sauf erreur passer 0 et 0 comme paramètre n'est pas correcte, c'est plutôt 1, 0. Il faut vérifier dans la documentation !
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 20173 19 nov. 2008 à 17:05
re,
Paramètre 0 et 0 = fermeture de session, marche bien si on veut fermer la cession!!!
Paramètre 1 et 0 = quitter windows (celon la doc) mais dans ce cas une valeur est renvoyée: false...
J'ai essayé tout ce qui pouvait servir à éteindre l'ordinateur (forçage et compagnie) mais rien ne fait, quand il s'agit d'éteindre l'ordinateur, le retour est false...
Je commence à me demander si il est possible d'éteindre une machine sous vista par programmation (à part en trichant), tout au moins la mienne!!!
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 nov. 2008 à 21:48
Evidemment que c'est faisable...
Peut-être faut-il les droits administrateurs? Quoique ça paraît un peu étrange, une application devrait pouvoir redémarrer le système normalement (après installation par exemple).
La solution avec WMI, tu as essayé?