programme "invisible"
Modérateur : WIN32-[GG]
programme "invisible"
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
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
- -- batchman --
- Batcheur débutant
- Messages : 22
- Enregistré le : 29 oct. 2014 11:37
Re: programme "invisible"
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 :
Bon je ne suis plus très sûr du code mais t'inquiète pas je te tient au courant !
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 mais t'inquiète pas je te tient au courant !
-- batchman --
Re: programme "invisible"
cool merci 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
je crois que tu est mon sauveur
- -- batchman --
- Batcheur débutant
- Messages : 22
- Enregistré le : 29 oct. 2014 11:37
Re: programme "invisible"
Hé hé regarde moi ça
Là je vient de te montrer un exemple : pour ton batch il suffit que tu mettes ton vrai code entre ces deux lignes :
Dans mon exemple le code batch qui est masqué (la charge active ) c'est ça :
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
Si tu as des questions, je suis là
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
Code : Tout sélectionner
:batch
rem Ici !
del prog.vbs
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
Si tu as des questions, je suis là
-- batchman --
Re: programme "invisible"
je teste ça et je te tient au courant
Re: programme "invisible"
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
sa m'ouvre bien le programme qui doit être caché mais il est affiché dans l'invite de commande
- -- batchman --
- Batcheur débutant
- Messages : 22
- Enregistré le : 29 oct. 2014 11:37
Re: programme "invisible"
Autant pour moi 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
Le code final ici :
Essaie comme ça maitenant si tu t'étais fait avoir :
Et met les espaces ici :
set "commandes=set variable=....
En espérant avoir pu t'aider
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
-- batchman --
Re: programme "invisible"
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....
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....
Modifié en dernier par LNOW le 21 déc. 2014 21:04, modifié 1 fois.
Re: programme "invisible"
merci, mais j'ai deja essayé et ce n'est pas sa que je veut mais merci quand meme ^^
- -- batchman --
- Batcheur débutant
- Messages : 22
- Enregistré le : 29 oct. 2014 11:37
Re: programme "invisible"
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
A +
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
A +
-- batchman --