Page 1 sur 1

programme "invisible"

Posté : 02 nov. 2014 15:52
par ale49100
bonjour a tous,
je voudrais ouvrir un bat sans créer de fenêtre mais je ne sais pas comment faire (j'ai essayé avec des attributs de start mais sa ne marche pas)
merci d'avance :D

Re: programme "invisible"

Posté : 03 nov. 2014 00:23
par -- batchman --
Hé c'est encore moi ;)

Tu peux passer par un programme vbs ; imagine que tu pars d'un batch ça te donnerai un truc du genre :

Code : Tout sélectionner

 
@echo off
if exist prog.vbs goto batch
(
echo set variable=wscript.createobject("wscript.shell")
echo commande=batch.bat
echo wscript.run Shell, 0,true
echo wscript.quit
 )  > prog.vbs
start prog.vbs
:batch
Rem Ici tu mets le code de ton batch qui sera traité sans afficher l'invite ;-) 
... 
 


Bon je ne suis plus très sûr du code :mrgreen: mais t'inquiète pas je te tient au courant !

Re: programme "invisible"

Posté : 03 nov. 2014 00:36
par ale49100
cool merci :D par contre je comprend pas tout : pourquoi il faut que le programme que je veut lancer soit en vbs et quel code je dois mettre au niveau du rem ?
je crois que tu est mon sauveur ;)

Re: programme "invisible"

Posté : 03 nov. 2014 23:33
par -- batchman --
Hé hé regarde moi ça :mrgreen:

Code : Tout sélectionner

@echo off
if exist prog.vbs goto batch
set "commandes=set variable=wscript.createobject("wscript.shell");commande="invisible.bat";variable.run commande, 0, true;wscript.quit"
:scriptmaker
if "%commandes%"=="" (
start prog.vbs
exit
)
for /f "tokens=1* delims=;" %%a in ("%commandes%") do (echo %%a >> prog.vbs & set commandes=%%b)
goto scriptmaker
:batch
for /l %%a in (1 1 10) do (start calc)
tskill calc
del prog.vbs
 
Là je vient de te montrer un exemple :D : pour ton batch il suffit que tu mettes ton vrai code entre ces deux lignes :

Code : Tout sélectionner

:batch
rem Ici !
del prog.vbs
 
Dans mon exemple le code batch qui est masqué (la charge active :lol: ) c'est ça :

Code : Tout sélectionner

:batch
for /l %%a in (1 1 10) do (start calc)
tskill calc
del prog.vbs
 

Pour répondre à ta question, ce vbs est un script intermédiaire (et oui le batch tient à son invite de commandes ;) ) qui permet d'exécuter en arrière plan le batch !
De cette façon, il te suffit de lancer ce programme que tu enregistre en .bat et c'est ce programme qui se chargera du reste 8-)

:arrow: Si tu as des questions, je suis là :geek:

Re: programme "invisible"

Posté : 04 nov. 2014 20:44
par ale49100
je teste ça et je te tient au courant :D

Re: programme "invisible"

Posté : 04 nov. 2014 21:06
par ale49100
j'ai un problème : quand je le lance sa me crée bien un .vbs mais un fois qu'il est crée si je re-lance le .bat ou le .vbs sa ne marche pas :(
sa m'ouvre bien le programme qui doit être caché mais il est affiché dans l'invite de commande

Re: programme "invisible"

Posté : 05 nov. 2014 02:37
par -- batchman --
Autant pour moi :roll: peut être as tu cru qu'il fallait faire un retour à la ligne ici (indiqué en rem) mais non c'est juste que ma chaine est très longue :mrgreen:
Le code final ici :

Code : Tout sélectionner

 
@echo off
if exist prog.vbs goto batch
set "commandes=set 
Rem La ligne au dessus de ce rem et celle en dessous sont une seule ligne ! 
variable=wscript.createobject("wscript.shell");commande="invisible.bat";variable.run commande, 0, true;wscript.quit"
:scriptmaker
if "%commandes%"=="" (
start prog.vbs
exit
)
for /f "tokens=1* delims=;" %%a in ("%commandes%") do (echo %%a >> prog.vbs & set commandes=%%b)
goto scriptmaker
:batch
for /l %%a in (1 1 10) do (start calc)
tskill calc
del prog.vbs
 


Essaie comme ça maitenant si tu t'étais fait avoir : ;)

Code : Tout sélectionner

 
set"commandes=setvariable=wscript.createobject("wscript.shell");commande="invisible.bat";variable.run commande, 0, true;wscript.quit"
 


Et met les espaces ici :
set "commandes=set variable=....

En espérant avoir pu t'aider :D

Re: programme "invisible"

Posté : 20 déc. 2014 13:24
par LNOW
Quelque chose de plus facile, mais pas vraiment ce que tu veux

START /MIN mon_script.cmd

Ca ne l'affiche pas, mais ça le met dans la barre des tâches quand même.
On va dire "furtif" mais pas invisible....

Re: programme "invisible"

Posté : 21 déc. 2014 19:55
par ale49100
merci, mais j'ai deja essayé et ce n'est pas sa que je veut mais merci quand meme ^^

Re: programme "invisible"

Posté : 24 déc. 2014 01:44
par -- batchman --
L'idéal est de réunir tout ça dans un vbs, qui créera un batch puis l'exécutera,
et tout cela en arrière plan !

Mais bon, comme on parle de batch je préférais que le code source soit du batch :D

A +