programme "invisible"

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
Avatar du membre
ale49100
Batcheur débutant
Messages : 13
Enregistré le : 26 oct. 2014 23:55

programme "invisible"

Message 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
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: programme "invisible"

Message 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 !
-- batchman --
Avatar du membre
ale49100
Batcheur débutant
Messages : 13
Enregistré le : 26 oct. 2014 23:55

Re: programme "invisible"

Message 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 ;)
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: programme "invisible"

Message 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:
-- batchman --
Avatar du membre
ale49100
Batcheur débutant
Messages : 13
Enregistré le : 26 oct. 2014 23:55

Re: programme "invisible"

Message par ale49100 »

je teste ça et je te tient au courant :D
Avatar du membre
ale49100
Batcheur débutant
Messages : 13
Enregistré le : 26 oct. 2014 23:55

Re: programme "invisible"

Message 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
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: programme "invisible"

Message 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
-- batchman --
LNOW
Batcheur débutant
Messages : 17
Enregistré le : 20 déc. 2014 12:28

Re: programme "invisible"

Message 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....
Modifié en dernier par LNOW le 21 déc. 2014 21:04, modifié 1 fois.
Avatar du membre
ale49100
Batcheur débutant
Messages : 13
Enregistré le : 26 oct. 2014 23:55

Re: programme "invisible"

Message par ale49100 »

merci, mais j'ai deja essayé et ce n'est pas sa que je veut mais merci quand meme ^^
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: programme "invisible"

Message 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 +
-- batchman --
Répondre