Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LA COMMANDE "SHUTDOWN"


Information sur le tutorial

Catégorie :Shell Date de création : 11/03/2006 22:30:46 Vu : 145 721 fois

Note :
5,78 / 10 - par 9 personnes
5,78 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (28)
Ajouter un commentaire et/ou une note

Description

Pour tous ceux qui cherchent à eteindre leur ordinateur par un bouton dans visual basic.

Tutorial

Depuis quelques temps je cherchais à éteindre mon ordinateur par unesimple pression sur un bouton visual basic. J'ai donc fouiller ce siteen obtenant de temps en temps des résultats mais aussi des faussespistes. Pour remettre cela bien au claire pour tout le monde, voici cetutorial qui j'espère vous conviendrat.

Tout commence par l'étude de la commande dos (cmd). En effet il y a uneligne de commande qui permet dans cette commande dos d'éteindre sonordinateur : "shutdown". Je me suis donc documenter sur la question etpour cela il suffit de taper dans cette cmd la commande "shutdown /?"d'ou on obtient la liste suivante :

Utilisation : shutdown [-i | -l | -s | -r | -a] [-f] [-m \\nom_ordinateur] [-t xx] [-c "commentaire"] [-d up:xx:yy]

        Sansargument          Affiche ce message (identique à -?)
       -i                     Affiche l'interface graphique, doit être la 1ère option
       -l                     Ferme la session (ne peut pas être utilisé avecl'option -m)
       -s                     Met l'ordinateur hors tension
       -r                     Met l'ordinateur hors tension et le redémarre
       -a                     Annule une mise hors tension système
        -m\\nom_ordinateur     Ordinateur distant à mettrehors tension/redémarrer/annuler
        -txx                  Définir le délai d'expiration pour la mise hors tension à xx secondes
        -c"commentaire"               Commentaire de la mise hors tension (maximum de 127 caractères)
       -f                     Force des applications en cours d'exécution à se fermer sansavertissement
        -d[u][p]:xx:yy         Le code deraison de la mise hors tension
                               u est le code utilisateur
                               p est un code de mise hors tension planifié
                               xx est le code de raison majeur (valeur entière inférieure à 256)
                               yy est le code de raison mineur (valeur entièrepositive inférieure à65536)

La deuxième question qui se posait alors était : comment interpretercette liste ? Pour faire simple la commande de base est "shutdown" ettout le reste sont ses attributs. Par exemple pour éteindrel'ordinateur avaec un compte à rebourg de 30 secondes et un commentaire: "c'est fini !" il faut entrer la commande suivante : shutdown -s -t 30 -c "c'est fini" (attention il faut respecter les espaces !").

Restait donc l'adaptation de cette commande à visual basic. Pour celarien de plus simple il suffit d'utiliser une commande shell. Parexemple pour éteindre l'ordinateur avec 30 secondes de compte à rebourg: shell("shutdown -s -t 30")

Pour l'éteindre : shutdown /a ou shutdown -a donc dans une shell : shell("shutdown /a")

Voilà donc le travail et vous n'avez plus qu'à l'adapter dans votre programme ! Bonne chance !


22 mars 2006 10:32:49 :
Pour l'éteindre
signaler à un administrateur
Commentaire de FraGag le 16/03/2006 06:51:11

Shutdown.exe n'existe que depuis Windows 2000. Pas très pratique dans Windows 98... Il y a des APIs pour faire ce travail, et c'est ce que je pensais trouver ici :( ...

signaler à un administrateur
Commentaire de ghuysmans99 le 19/03/2006 10:03:32

moi aussi, j'ai win2k donc j'ai pas shutdown.exe ...

signaler à un administrateur
Commentaire de morel16 le 19/03/2006 23:54:42

Non ! c'est pas sérieux ça !
Plusieurs erreurs !
1. Ton code c'est shutdown -s -t 30 -c "c'est fini"
Il ne faut pas oublier l'espace entre -t et 30 .

Amusez vous à modifier 30, c'est le nombre de seconde ...
shutdown -s -t 300000000
par exemple :p .

Vous avez surement remarqué que une fois lancé , il est impossible d'arreter la manoeuvre ?
Vous avez beau éssailler d'arreter les processus. vous n'y arriverez pas
hahaha
Comment faire ?

Tout simplement. ceci
shutdown -a

signaler à un administrateur
Commentaire de mic38250 le 22/03/2006 10:30:03

Je ne voi pas en quoi ce n'est pas sérieux. Cette commande est très pratique et je ne la trouvait nul-part !
Pour l'arrêter rdv. dans cmd et taper shutdown /a ou alors créer une shell dans vb6 : shell("shutdown /a")
Attention il est vrai aux espaces !

signaler à un administrateur
Commentaire de pindo le 22/03/2006 13:44:58

Oui, et j'en suis très reconnaissant en vers vous.
merci

signaler à un administrateur
Commentaire de e_NeX le 26/03/2006 06:25:31

salut bah le seul truc qui marche bien sur toutes les versions de windows c'est ca : http://www.vbfrance.com/codes/REBOOT_21091.aspx

on peut faire un reboot en local et a distance!!! seul pb c'est que pour faire le reboot ou le shutdown a distance, faut avoir le pass d'un compte admin sur la machine distante... si tu l'a bin connecte toi sur cette machine avec explorer et entre le le mot de passe et Reboot ou étenit la machine!!! aussi le truc bien c'est que tu peut annule un reboot ou un shut down.. je vous laisse tester ;) ca utilise les API windows;)

signaler à un administrateur
Commentaire de Nuker3000z le 04/04/2006 02:40:30

T'es débile. 0/10

signaler à un administrateur
Commentaire de nico1610 le 04/04/2006 17:29:56

CITATION DE NUKER3000Z : "T'es débile. 0/10"

ce genre de remarqe n'a rien avoir avec le code et n'apporte rien d'instructif, détail ton commentaire.

Lit un peut la chartre : "En cas de commentaire irrespectueux, votre commentaire risque la même peine et sans préavis ni justification alors merci de rester calme et courtois tout au long de vos échanges."

signaler à un administrateur
Commentaire de blinix123 le 08/04/2006 00:40:54

si je me souviens bien...effectuer un "Fermer la session" (shutdown.exe -l -t 0) ou un "Redémarrer l'ordinateur" (shutdown.exe -r -t 0)

signaler à un administrateur
Commentaire de blinix123 le 08/04/2006 00:46:49

pour crer le raccourci pour redemarrer windows
Il suffit de faire un clique droit sur le bureau puis selectionner

nouveau->raccourci->puis dans l'emplacement
%windir%\System32\shutdown.exe -r -f -t 0
donner lui le nom que vous souhaitez et voila MAGIK


pour crer le raccourci pour arreter windows
Il suffit de faire un clique droit sur le bureau puis selectionner

nouveau->raccourci->puis dans l'emplacement
%windir%\System32\shutdown.exe -s -f -t 0
donner lui le nom que vous souhaitez et voila MAGIK

signaler à un administrateur
Commentaire de Benharper27 le 12/04/2006 14:54:40

Merci pour l'info.
Je l'utilise pour un programme que j'ais fait qui repère les activités suspecte sur mon ordi.
Pour le coup du 3000000 seconde, je ne crois pas que se soit possible car si tu lit bien le tuto, on ne peut rentrer que 2 chiffre donc au maximum 99 secondes.

signaler à un administrateur
Commentaire de moh77 le 12/04/2006 23:34:53

Merci
Mais c'est trops tar

signaler à un administrateur
Commentaire de abbassi_omar le 18/04/2006 04:07:34

salut a tt
je veux savoir comment atteindre un poste dans le resaux local
j'ai essaie mais toujour pas de reponse
une idee SVP
et merci

signaler à un administrateur
Commentaire de EvildarkEurope le 29/04/2006 13:13:41

Shutdown -s -m //pcreseau -t 200 -c "bye bye" -f

Pour ceux qui veulent des Api, rien à voir avec les Shutdown mais tout aussi utile :

   Declare Sub LockWorkStation Lib "user32" ()

LockWorkStation permet de vérrouiller très simplement un PC. Cette fonction équivaut à faire [Control]+[Alt]+[Suppr], puis à cliquer sur "Vérrouiller l'ordinateur".
RAPPEL > Il y a pas le menu sous XP mais sa marche quand même.

signaler à un administrateur
Commentaire de morel16 le 30/04/2006 13:28:31

CITATION DE Benharper27
<< Pour le coup du 3000000 seconde, je ne crois pas que se soit possible car si tu lit bien le tuto, on ne peut rentrer que 2 chiffre donc au maximum 99 secondes. >>


Je maintient ce que j'ai dit ! shutdown -s -t 300000 peut fonctionner ! Et shutdown -s -t 300000000 fonctionne aussi !! ce qui fait 300000000 secondes, soir 3472 jours !
Sur windows XP j'en suit sur a 100 %

<<on ne peut rentrer que 2 chiffre donc au maximum 99>>
donc ceci est faux .

signaler à un administrateur
Commentaire de themioux le 08/05/2006 23:19:32

Salut à tous

Pour ce qui est de shutdown, il apparait dans Windows 2000 Ressource Kit et n'est pas intégré directement

Pour windows 98, si mes souvenirs sont bons, la commande c'est "rundll32.exe user.exe,exitwindows" il me semble (pas de windows 98 sous la main pour tester)

On doit donc pouvoir faire un truc du genre
shell("shutdown -s -t 0")
shell("rundll32.exe user.exe,exitwindows")
même si c'est pas super propre, ca doit fonctionner

signaler à un administrateur
Commentaire de ROOTVL69 le 31/05/2006 14:29:09

Pour windows 98, c'est effectivement la commande rundll32.exe user.exe,exitwindows.
Cela faisait longtemps que je cherchais un truc de ce genre pour arreter XP plus rapidement...
Merci, 8/10

signaler à un administrateur
Commentaire de twh19 le 09/08/2006 14:10:13

Private Sub Form_Load()
retvalue = GetSetting("A", "0", "Runcount")
GD$ = Val(retvalue) + 1
SaveSetting "A", "0", "RunCount", GD$
If GD$ > 3 Then ' ÇMsgBox"finish of program"
Unload FRM '
End If
End Sub

signaler à un administrateur
Commentaire de yakou32 le 13/10/2006 12:59:50

OK, mais pour arrêter un PC du réseau, je reçois "Accès Refusé"...
Comment fais-je ???

signaler à un administrateur
Commentaire de morel16 le 03/11/2006 10:31:07

Essaille déja avec les parfeux éteints sur les 2 pc.

signaler à un administrateur
Commentaire de hnoura le 30/09/2007 07:49:26

salut pour tous,je fais une auto shutdown avec 3 option:
1 shutdown
2 restart
3 log off
et avec un progress bar pour indique conbien il reste de temps ,j'utilise le shell
maintenant j'essaye de remote l'autre pc avec cette commande ,qui peut  de donne de conseil,je suis tres remerciment

signaler à un administrateur
Commentaire de Arphyss le 24/10/2008 10:48:04

Bien le bonjour.

Cette commande hyper simple m'a été très utile, mais en ce qui me concerne la syntaxe doit être légèrement différente puisque j'utilise VB.net et Visual Studio 2008 (j'ignore si le même problème subsiste avec d'autres versions).

En effet, pour afficher les commentaires, il convient de faire des double guillemets:

shell (Shell("shutdown -s -t 30 -c ""blablabla"" ")

Sinon les premiers guillemets avant blablabla vont fermer le string de la commande shell. C'est tout bête mais faut le savoir ;)

signaler à un administrateur
Commentaire de Arphyss le 24/10/2008 10:50:59

Oups faute de frappe (et oui...)

c'est bien

Shell("shutdown -s -t 30 -c ""blablabla"" "

qu'il faut taper :p

signaler à un administrateur
Commentaire de themioux le 24/10/2008 10:54:03

Rien à voir avec la commande... En VB.Net, pour mettre une paire de guillemets dans une chaine de caractère, il fait la doubler.

Pour vous en convaincre, il suffit de définir une variable contenant la commande à exécuter et l'afficher.

Dim cmd_shell As String

cmd_shell = "shutdown -s -t 30 -c ""blablabla"" "

MessageBox.Show (cmd_shell) // affiche 'shutdown -s -t 30 -c "blablabla"'

signaler à un administrateur
Commentaire de Kai_Ho le 31/10/2008 06:28:08

Bonjour,
Pour ma part, la commande
shell (Shell("shutdown -s -t 30 -c ""blablabla"" ") fonctionne bien

Mais si je place une variable à la place de 30, rien ne se passe


shell (Shell("shutdown -s -t Mavariable -c ""blablabla"" ")

Une explication ?

signaler à un administrateur
Commentaire de themioux le 31/10/2008 09:01:43

Absolument...

Si vous tapez shutdown -s -t Mavariable -c "blablabla" dans une ligne de commande, vous aurez également une erreur... Si vous voulez le contenu de Mavariable dans la chaine il faut faire

shell("shutdown -s -t " & Mavariable & " -c ""blablabla"" ")

signaler à un administrateur
Commentaire de cdamien44 le 31/10/2008 12:28:48

Sur du réseau, commande en "Executer" :Shutdown -i
faire ajouter, mettre le nom du PC, et commentaire si necessaire.
plutot simple :-)

signaler à un administrateur
Commentaire de Kai_Ho le 31/10/2008 12:50:46

Merci Themioux... C'est vrai que ça fonctionne mieux comme ça :-)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,094 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.