Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2178 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Créer un batch pour redémarrer un programme [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Créer un batch pour redémarrer un programme [résolu]

n°1546499
armyman
Posté le 22-04-2007 à 06:37:29  profilanswer
 

Bonjour à tous, je suis nouveau sur ce forum :whistle:
 
Avant de me dire d'utiliser l'outil de recherche, sachez que je fait cela depuis 4 heures maintenant, sans succès alors je me suis inscrit pour poster!
 
 
Voilà, je voudrais créer un .bat qui me permet de lancer un .exe (la console d'un serveur de jeu), et qui redémarre l'exe quand il crash.
 
Alors j'arrive à lancer le serveur avec mon .bat mais le problème c'est de le redémarrer quand ca crash :(.
 
En fait tout marche nickel mais il y a une boite d'erreur de Windows "server.exe a rencontré un problème et doit fermer blabla" qui s'affiche quand le serveur crash.
 
Le problème: je ne sais pas comment faire pour dire à mon .bat d'ignorer cette fenêtre ou au pire de cliquer automatiquement sur Fermer (le Fermer de la fenetre d'erreur) ^^.
 
Quand je clique 'manuellement' sur Fermer, le serveur redémarre, donc cette fenêtre d'erreur est :o..ennuyante!
 
Donc je pense que la solution c'est de vérifier si dwwin.exe s'est lancé (le truc qui me met la fenetre d'erreur), puis de le tuer avec taskkill, mais comment vérifier que ce processus se lance? Est-ce possible avec les batch?
 
 
Voila à quoi ressemble mon code pour l'instant:
 

Code :
  1. @echo off
  2. set count=0
  3. :start
  4. cls
  5. set message= [%date%] [%time:~0,8%]: Server started
  6. if %count%==0 echo %message%. & goto next
  7. echo %message% (restarted %count%x). & goto next
  8. :next
  9.    
  10. set /a count+=1
  11. server.exe
  12. goto start


 
 
Si vous avez des solutions n'hésitez pas à poster!
 
Please aidez moi, merci d'avance :)
 
:hello:


Message édité par armyman le 24-04-2007 à 21:11:55
mood
Publicité
Posté le 22-04-2007 à 06:37:29  profilanswer
 

n°1546505
webding
Posté le 22-04-2007 à 09:12:09  profilanswer
 

Ceci va vérifier si ton processuc et lancer puis le tuer s'il est lancer:

Code :
  1. tasklist | findstr /i /c:"dwwin.exe"
  2.    if %errorlevel%== 0 taskkill dwwin.exe


Message édité par webding le 22-04-2007 à 09:12:17
n°1546517
armyman
Posté le 22-04-2007 à 10:23:05  profilanswer
 

Hmmm, ca ne marche pas pour moi. Le processus dwwin.exe n'est évidemment pas lancé tant que mon serveur ne crash pas! Ou alors, expliqué plus simplement, comment je fais pour vérifier constamment si dwwin.exe est lancé??

n°1546518
webding
Posté le 22-04-2007 à 10:27:14  profilanswer
 

Tu peut pas, il fdaut lancer le script de temps en temps

n°1546527
armyman
Posté le 22-04-2007 à 11:18:52  profilanswer
 

Ok...bon j'ai trouvé une solution (pas très bonne) à mon problème de toute facon :P, j'ai simplement désactiver dwwin.exe
 
Pour ceux que ca interesse, allez à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug et changez la clé Auto à la valeur 1.
 
Merci quand meme webding :)
 
 
 
Par contre j'essaye REG ADD ca a pas l'air de marcher :s, même REG IMPORT ca ne marche pas..
 
Dans mon batch

Code :
  1. reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug /v Auto /t REG_SZ /d 1

Marche pas...Ca me met "Erreur: trop de paramètres de ligne de commande"
 
OU ALORS

Code :
  1. REG IMPORT test.reg

Dans mon fichier .reg

Code :
  1. REGEDIT4
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
  3. "Auto"="1"

Marche pas non plus, ca me dis "L'opération s'est bien déroulée" mais rien ne se passe dans le registre :(


Message édité par armyman le 22-04-2007 à 12:08:33
n°1546539
webding
Posté le 22-04-2007 à 12:15:13  profilanswer
 

Essaye ceci:

Code :
  1. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Auto /t REG_SZ /d 1 /f

n°1546540
olivthill
Posté le 22-04-2007 à 12:16:09  profilanswer
 

Habituellement, chaque paramètre est séparé par un espace, et donc quand un paramètre contient un espace, il faut l'entourer avec des guillemets :
 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Auto /t REG_SZ /d 1
 
Edit : grilled :)


Message édité par olivthill le 22-04-2007 à 12:16:39
n°1546541
armyman
Posté le 22-04-2007 à 12:27:27  profilanswer
 

Cool ca marche merci :)
 
Dernier problème sur lequel je bloque :o (mais pas très important en fait) :
 
Comment remettre la valeur de cette clé à 0, quand je ferme mon batch ?

n°1546549
webding
Posté le 22-04-2007 à 12:50:57  profilanswer
 

Code :
  1. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Auto /t REG_SZ /d 0 /f

n°1546552
armyman
Posté le 22-04-2007 à 12:56:50  profilanswer
 

:D je l'attendais celle là lol ^^
 
Mais où est-ce que je dois la placer ? Je la met partout, ca fais rien :)
 
Et puis j'ai pas envie de faire un menu parce que sinon mon auto restarter ne servira à rien lol. Si on peut pas et bien j'utiliserais un fichier .reg et pi c'est tout ^^

mood
Publicité
Posté le 22-04-2007 à 12:56:50  profilanswer
 

n°1546562
webding
Posté le 22-04-2007 à 13:15:07  profilanswer
 

tu le met a la fin de ton script

n°1546643
armyman
Posté le 22-04-2007 à 18:34:09  profilanswer
 

Ben..j'ai essayé pas mal de truc, sans bon résultats ^^. J'ai pensé que :EOF résoudrait le problème mais non :o.
 
C'est pas grave de toute facon je pense pas relancer dwwin un jour, c'est plus emmerdant qu'utile ce truc :)
 
Merci beaucoup de votre aide les gars ^^


Message édité par armyman le 22-04-2007 à 18:37:09
n°1546912
armyman
Posté le 23-04-2007 à 10:58:13  profilanswer
 

C'est bon, problème résolu :)


Message édité par armyman le 24-04-2007 à 21:11:34

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Créer un batch pour redémarrer un programme [résolu]

 

Sujets relatifs
[Résolu][C# .Net] Changer le curseur quand je pointe une image[PHP][resolu] Comment appeler une fonction située....
[non résolu] mysql- rechercher dans plusieurs tablesCreer un exe autonome sous Visual studio 2005
[MySql] Concatener deux champs [Resolu][RESOLU] Absence barre de defilement verticale sous Opera
Probléme avec une boucle forProgrammer un bouton d'action via Visual basic
[Debutant] soucis pour consulter source site web[Résolu]arret du programme sur touche entree
Plus de sujets relatifs à : Créer un batch pour redémarrer un programme [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR