Fichier Batch. (Choice)
Forum Programmation : Fichier Batch. (Choice)
Salut à tous.
Alors, j'ai créé un fichier batch pour choisir une résolution sur Counter-strike. Car j'ai une partie pour jouer, et une autre pour faire des movies, mais la résolutions des deux parties est différente.
Par contre, lorsque je choisis entre la résolution 800x600 et 1024x768 je dois appuyer sur une touche et entrer.
J'aurais voulu savoir comment enlever le "entrer" de fin.
| Citation : @echo off
|
Je pense que cela vient du /p. Merci de bien vouloir m'aider.
rajoute echo sendkeys "{enter}" > enter.vbs
et a la fin de la commande qui change la résolution, open enter.vbs
Merci de ta réponse.
Mais malheureusement, je n'arrive pas à faire fonctionner. Peut être moi...
| Citation : title R,solution
|
Voici ce que j'ai.
Message édité par Tybbow le 02-07-2007 à 20:51:40
Répondre à Tybbow
Ce que tu demande n'est pas possible en DOS pur (c'est pas fait pour programmer un jeu, en plus DOS est très limité).
Il faut utiliser un programme externe (c'est un peu ce qu'indique narrateur747)
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Non, je ne veux pas programmer un jeu. Je veux seulement choisir la résolution de mon image sans passer par les options avant le lancement du jeu en changeant la clef du registre lui concernant.
Il est possible de le faire avec une commande: choice
Mais, j'aimerais avoir le même truc, sans choice.. Je trouve plus joli d'avoir un menu et un choix plutôt que le choix en lui même.
Sinon, cela se serait plus simple encore:
| Citation : @echo off
|
Un truc du genre.
Message édité par Tybbow le 02-07-2007 à 22:09:01
Répondre à Tybbow
sous xp ou vista, ce n'est pas possible (ou alors je connais pas) par contre, tu peux télécharger l'utilitaire choice.com depuis microsoft:
ftp://ftp.microsoft.com/Services/ [...] CHOICE.COM
et l'utiliser comme avant
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Bon, je vais passer par choice.exe. (Choice.com) ^^
Merci à vous.
Répondre à Tybbow
Met-toi à la programmation en Python, tu verrais alors que DOS est très limité
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ouai, mais si je me souviens bien, le Python n'est pas très logique.
Après, je ne me met pas à la programmation, j'apprends juste 2-3 bases pour pas faire le guignol d'vant mes potes XD
Non, j'déconne. C'est juste pour lancer 2-3 applications et essayer de battre un record de rapidité d'installation de Windows et configuration de tous les logiciels.
J'ai effectué un score de 1h20minutes avec un formatage lent d'un DD de 30Go.
Enfin! J'vais passer au DOS et peut être essayer le Visual Basic pourquoi pas. ^^
Message édité par Tybbow le 03-07-2007 à 21:23:13
Répondre à Tybbow
| Citation : Ouai, mais si je me souviens bien, le Python n'est pas très logique. |
Je pense surtout que tu n'as jamais programmé en python...
Parce que si on doit choisir un langage pas logique, c'est le DOS ! (voir l'utilisation d'une variable incrémentée dans une boucle).
| Citation : Après, je ne me met pas à la programmation, j'apprends juste 2-3 bases pour pas faire le guignol d'vant mes potes XD
|
Tu peux utiliser une console python comme une console DOS, sauf que la console python permet bien plus.
| Citation : Enfin! J'vais passer au DOS et peut être essayer le Visual Basic pourquoi pas. ^^ |
Oui, ou passer au VB, mais pas rester au DOS
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
le langage depend du but
si le but est de pouvoir lancer 2-3 commandes au choix sur un poste fraichement installé, le batch, et eventuellement wsh (windows scripting host) sont quand meme mieux placés
le python ou vb est surdimensionné pour ce genre de choses
et d'ailleurs, les langages, il y en a légion, le php aussi peut etre utilisé en cli, le perl, ruby, bash sous windows etc..
Penser à voir les tutos, ca peut aider!
Répondre à coca25
python, surdimensionné ? non, ça se sert aussi comme un shell par exemple on peut dezipper un fichier, calculer un md5, le tout dans une console (d'ailleurs ça peut être considéré comme un shell script avec le #!/usr/bin/env python.
D'ailleurs les tuto de début sont pour faire des additions dans la console
En cherchant un tuto pour vous montrer, j'ai vu que le site du zéro en a fait un:
http://www.siteduzero.com/tuto-3-2 [...] ython.html
Le python, y a pas plus simple et ça reste performant
Achetez-le, c'est gratuit
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ouai, mais faut d'abord installer un soft pour pouvoir utiliser et faire du Python non? Si c'est le cas, je devrais forcement passer par un .bat pour installer le module Python ^^
Mais, je garde le lien, cela peut être intéressant. Merci!
En ce qui concerne la logique du Python, cela était dû à un calcul... Je ne me rappelle plus lequel. Enfin, il n'avait pas logique de la priorité + - * /
Si je me souviens bien.
Répondre à Tybbow
Yop, je reviens pour une question. Je continu à créer mon petit truc tranquillement et au file des jours, je vois qu'il prend de l'ampleur
Mais, j'aurais voulu savoir, si je peux créer une installation automatique d'un logiciel? Sans avoir besoin de cliquer sur suivant etc?
Je vous explique:
| Citation : @echo off
|
Bon, il n'est pas fini loin de là.. Je pense pouvoir le finir bientôt. Mais comment dire:
Prenons exemple avec l'installation des drivers.
| Citation : "H:\Install\Installation\Driver\CPanel\Setup.exe"
|
Au début, j'installe le contrôle Panel... Ensuite, lorsqu'il est fini, j'installerais les drivers de la carte graphique.
Seulement, lorsque la première installation sera fini. N'est-il pas possible de créer, comme une sorte de "Bind" pour faire plusieurs étapes simultanément?
Car je souhaiterais, par, ce que Narrateur747 m'a appris:
| Citation : echo sendkeys "{enter}" > enter.vbs |
Faire en sorte, que l'installation se fasse de façon automatiquement, avec un script (par exemple) pour appuyer sur "entrer"
Mais, pour cela, il me faudrait pouvoir faire plusieurs étapes simultanément.
J'espère avoir été clair dans mes propos.
Merci!
Ps: Je n'ai pas envie de passer au Python pour le moment
surtout que je devrais réapprendre toutes les bases, avant de terminer mon "machin"
Répondre à Tybbow
plusieurs étapes simultanément ? Je ne te le conseille pas (ou alors sur un OS temps réel).
Installer les les uns après les autres. De toutes façon, tu as le temps puisque c'est automatique (c'est l'intérêt de l'automatique non ?
)
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Lool.. Bah, ce n'est pas encore vraiment automatique. Puisque dans tous les cas, je devrais tout de même lancer sur "suivant, suivant, suivant etc.."
Je parlais d'automatisme pour lancer un fichier script qui le ferrait à ma place, justement.
Je voudrais, qu'il appuie de lui même sur "entrer" etc... Malheureusement, je ne sais pas trop comment mit prendre.
J'ai essayé un truc du genre, mais cela ne marche pas.
| Citation : @echo off
if "%menu%"=="1" goto partie31
"F:\Tybbow\Install\Logiciel\Speedfan.exe" goto partie3
"enter.vbs" |
Quelque chose du genre... Enfin, enfaite j'en sais rien, alors si vous avez une idée, merci de m'en faire parvenir!
Message édité par Tybbow le 05-07-2007 à 22:12:02
Répondre à Tybbow
tu peux utiliser un utilitaire de ce genre:
http://www.01net.com/telecharger/w [...] /6931.html
pour enregistrer la souris + clavier
mais l'inconvénient, c'est qu'il va falloir l'installer en premier... et manuellement ![]()
sinon t'as la possibilité de programmer ca avec wsh mais c'est relativement fastidieux
Message édité par coca25 le 05-07-2007 à 22:14:38
Penser à voir les tutos, ca peut aider!
Répondre à coca25
La deuxième proposition me parait pas mal
Si tu pouvais m'expliquer un peu le but.
Répondre à Tybbow
echo sendkeys "{enter}" > enter.vbs
et quand tu as besoin de valider tu fais :
run enter.vbs
| narrateur747 a écrit : echo sendkeys "{enter}" > enter.vbs
|
C'était à ça que je pensais. Il faut éviter de lancer une install quand l'autre n'est pas terminée.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ouai, mais comment veux-tu que je le fasse fonctionner, si je ne peux lancer simultanément 2 applications?
Ps: Aurais-je oublié d'énoncer que je n'y connais rien en programmation? ^^
Message édité par Tybbow le 05-07-2007 à 22:27:24
Répondre à Tybbow
J'ai peut-être pas bien compris.
Tu en lances un, tu l'installes avec les "Entrée", tu temporise s'il faut, et tu lance le suivant, etc.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
OUai, je suis entièrement d'accord avec toi.
Prenons exemple:
| Citation : @echo off
|
Où dois-je placer le "run enter.vbs" pour que celui-ci puisse fonctionner?
Message édité par Tybbow le 05-07-2007 à 22:29:31
Répondre à Tybbow
après avoir lancé le programme (allez je t'ajoute même une tempo d'une seconde en envoyant 2 ping):
"F:\Tybbow\Install\Logiciel\Speedfan.exe"
ping -n 2 127.0.0.1 >NUL 2>NUL
run enter vbs
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Voilà, tu tombes dans le même panneau que moi.
Je t'explique! WOuahh, j'vais peut être apprendre quelque chose à CRicky
Avant de pouvoir lancer une autre application, il faut ABSOLUMENT que celle d'avant soit TERMINER.
En gros, pour que je puisse lancer:
ping -n 2 127.0.0.1 >NUL 2>NUL
run enter.vbs
Il faut que l'application "Speedfan" soit terminé. Tant que cette application est en fonctionnement, je ne pourrais lancer une autre commande.
Voilà, où se situe mon problème.
Merci de vouloir m'aider à mon projet.. Je viens d'y passer toute la journée. Oo
Répondre à Tybbow
tu peux utiliser:
|
ca ne rends la main que quand c'est fini, par contre ca suppose 1 programme qui tourne en parallèle pour l'envoi d'entrée
Penser à voir les tutos, ca peut aider!
Répondre à coca25
tiens un exemple qui peut t'interesser:
|
à sauvegarder dans machin.vbs
source: http://msdn2.microsoft.com/en-us/library/ms974584.aspx
Penser à voir les tutos, ca peut aider!
Répondre à coca25
| Citation : ca ne rends la main que quand c'est fini, par contre ca suppose 1 programme qui tourne en parallèle pour l'envoi d'entrée |
Euh, je pense que tu n'as pas compris
^^
Alors, je m'explique clairement.
Lorsque j'exécute mon fichier .bat, je ne peux lancer une installation à la fois. Tant que cette installation n'est pas fini ou n'a pas été annulé, mon programme ne peut exécuter la commande suivante.
Imaginons j'ai:
"F:\Tybbow\Install\Logiciel\Speedfan.exe"
"F:\Tybbow\Install\Logiciel\Gimp.exe"
L'installation de GIMP, ne pourra s'effectuer, une fois que celle de Speedfan sera fini.
Donc, tant que je ne puisse effectuer 2 applications à la fois, je ne pourrais en aucun cas me servir de script pour appuyer sur "entrée" à ma place.
En revanche, ton deuxième post me plait beaucoup.
Répondre à Tybbow
ah ok, alors au lieu du "start /w", tu fais "start" tout court, ca rend la main direct.
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Raa, Je T'aime Mon P'tit Coca25...
Voici le résultat:
| Citation : @echo off
|
Cela fonctionne parfaitement. Merci encore pour votre aide!
Message édité par Tybbow le 06-07-2007 à 02:27:08
Répondre à Tybbow
remarque tu aurais pu le faire completement en vbs
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Bah, comme je suis tout le temps sur mon projet, peut être que je partirais définitivement en vbs. Je ne sais pas de quoi est fait mon futur.
Au début, je suis parti de la commande "choice" pour effectuer mon projet, ensuite, j'ai appris de nouvelle chose avec le batch, et j'ai encore appris de nouvelle chose avec le vbs.
Et comme je suis encore loin d'avoir fini ^^
En Revanche, tu avais raison. C'est Fastidieux... Rien que pour l'installation automatique d'un logiciel avec un clef produit ( Vous inquiétez pas, légal ^^ ), il faut voir plusieurs Manip avec plusieurs code.
En plus, j'ai eu un problème avec une commande telle que:
echo WScript.CreateObject("WScript.Shell" ).SendKeys "%{TAB}" > %ProgFiles%\tabulation.vbs
Car dès que le MS-DOS remarque le % il y a un bug. Enfin, ce n'est pas très grave...
Merci encore! je vais pouvoir m'amuser ^^
Ps: Normalement mon script va me permettre d'améliorer la vitesse de réinstallation de Windows et tous les logiciels. Mais j'en ai pour pas mal de temps à créer mon script... Donc, je ne sais même pas si au final, je gagnerai du temps... ^^
Enfin, je m'amuse, c'est le principal. Merci!
Message édité par Tybbow le 06-07-2007 à 11:32:31
Répondre à Tybbow
tu doubles le % pour qu'il soit pris en compte
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Merci coca25.
Voici, comment j'ai procédé... Mon Programme peut sembler crade ^^
| Citation : @echo off
|
Répondre à Tybbow
en tout cas, c'est pas très clair ![]()
un exemple pour le tout en .vbs, tu en feras ce que tu veux par la suite:
function test_2 dim wsh wsh.run ("F:\Tybbow\Install\Logiciel\Partition\setup.exe" ) ' pour afficher du texte: ' pour demander une reponse |
en plus ca évite d'avoir la fenetre noire
Message édité par coca25 le 06-07-2007 à 16:38:39
Penser à voir les tutos, ca peut aider!
Répondre à coca25
color 1c
sa va éviter d'avoir la fenetre noire en la mettant bleu
Code :
|
Cela semblera peut être plus clair loool.
Sinon, merci Coca25, mais malheureusement, je n'y connais vraiment rien en vbs, sauf les SendKeys ^^ Et comme maintenant, je n'ai vraiment plus grand chose à rajouter, car je peux faire fonctionner mon programme, je ne vais pas me lancer sur autre chose.
Peut être, après.
Répondre à Tybbow
c'est toi qui vois
Penser à voir les tutos, ca peut aider!
Répondre à coca25
au fait, j'ai oublié de te le dire tout à l'heure, la variable pour c:\program files, c'est:
%programfiles% et non %progfiles"
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Ouaip, je sais... Mais je préfère utiliser %windir%\script
Répondre à Tybbow
Il y a 250 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
