Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Boite de dialogue

5 réponses
Avatar
Jacques \(BE\)
Bonjour

comment faire afficher une boite de message avec un bouton 'oui' et un
bouton 'non' à partir d'un fichier .bat

Merci de vos réponses


Jacques

5 réponses

Avatar
jbongran
Jacques (BE) wrote:
Bonjour

comment faire afficher une boite de message avec un bouton 'oui' et un
bouton 'non' à partir d'un fichier .bat

Merci de vos réponses


Jacques


En appelant un fichier vbs qui retournera le code correspondant au bouton
cliqué (0 pour oui, 1 pour non)
Vite fait:

<-- msgbox.vbs -->
Dim strReturn
strReturn = MsgBox("Répondez à la question", 36, "Question...")
'Facultatif, permet de retourner 0 pour oui, 1 pour non
strReturn = strReturn -6
WScript.Quit(strReturn)
<-- msgbox.vbs -->

<-- msgbox.cmd -->
call wscript.exe msgbox.vbs
goto button%errorlevel%
:button0
echo Bouton Oui
goto end
:button1
echo Bouton Non
:end
echo Fini !
<-- msgbox.cmd -->

Avatar
moi
Notre ami Jacques (BE) tapota :

Bonjour

comment faire afficher une boite de message avec un bouton 'oui' et
un
bouton 'non' à partir d'un fichier .bat

Si c'est pour récupérer le choix fait dans le *.bat en question il me

semble q'il faut rennocer... ce n'est pas fait pour ça.
En revanche, Choice est encore vivant je pense ...

CHOICE [/C[:]touches] [/N] [/S] [/T[:]c,nn] [texte]

/C[:]touches Spécifie les touches configurables. Le défaut est ON
/N Ne pas afficher les touches et le ? à l'invite.
/S Permet de distinguer entre majuscules et minuscules.
/T[:]c,nn Touche par défaut c après nn secondes
texte Texte à afficher à l'invite

le choix est "récupéré" par ERRORLEVEL.

exemple idiot
bien noter l'ordre des if ...
C'est VITAL

-----------------------------------------------------------
CHOICE /C:123 Choisissez entre %1
IF ERRORLEVEL ==3 GOTO CHOIX3
IF ERRORLEVEL ==2 GOTO CHOIX2
IF ERRORLEVEL ==1 GOTO CHOIX1
GOTO END

:CHOIX3
ECHO Vous avez choisi 3
GOTO END

:CHOIX2
ECHO Vous avez choisi 2
GOTO END

:CHOIX1
ECHO Vous avez choisi 1

:END
-----------------------------------------------------------

Avatar
Méta-MCI
Bonsoir !

Ci-dessous, une version purement (hum !) batch.
Elle est un peu longue, mais c'est parce qu'elle est jolie.

Attention, les espaces comptent ; mieux vaut utiliser un copier-coller
global, plutôt que de toute retaper.
Autre chose : il faut enregistrer le batch sous le nom ouinon.bat dans le
même répertoire où on va le lancer.

@-salutations
--
Michel Claveau



@echo off
::
:: Le batch doit s'appeler ouinon.bat
::
setlocal
type ouinon.bat| find " ">%TEMP%temp.txt
type %TEMP%temp.txt| find /V "find">%TEMP%ouinon.hta
set REPONSE=NON_DEFINI
%TEMP%ouinon.hta
call C:REPONSE.BAT
del C:REPONSE.BAT
echo REPONSE : %REPONSE%
endlocal
goto :EOF



<hta:application
windowstate="normal"
caption="no"
singleinstance="yes"
/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<STYLE>
BODY{FILTER:progid:DXImageTransform.Microsoft.Gradient(startColorstr=#223366,endColorstr=#8888AA,gradientType=1,enabled=true)}
</STYLE>
</head>

<body bgColor=#000088 background="" scroll=no onload="Finit();">

<SCRIPT language=JavaScript>
function Finit(){
self.resizeTo(360,200);
self.moveTo(110,10);
window.name='Oui-Non';
window.title='Oui-Non';
}

function traiteclic(bouton){
var wfs=new ActiveXObject("Scripting.FileSystemObject");
fichier=wfs.CreateTextFile("c:REPONSE.BAT", 1)
fichier.WriteLine("set REPONSE="+bouton);
fichier.close();
window.close();
}
</SCRIPT>

<FONT face=Arial color=#ffffaa size=3>
&nbsp;&nbsp;
Message :
<br><br><b>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Texte de la ligne un <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Texte de la deuxième ligne.<br>
<br><br><br></b>
<blockquote><blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;
<input ID="BTOUI" type="button" class="freebouton" VALUE=" Oui "
onmousedown="traiteclic('OUI');" />&nbsp;&nbsp;&nbsp;
<input ID="BTNON" type="button" class="freebouton" VALUE=" Non "
onmousedown="traiteclic('NON');" /><br>
</blockquote></blockquote>
<br>
</body></html>
Avatar
Jacques \(BE\)
Bonjour

Effectivement c'est plus beau que la classique boite de message.
Petits problèmes avec ton exemple :
-le bouton Non ne s'affiche pas
-je n'arrive pas à capter quel bouton a été appuyé (ici le bouton Oui)
-le fichier C:REPONSE.BAT ne se crée pas ...


Jacques


"Méta-MCI" a écrit dans le message de
news:%
Bonsoir !

Ci-dessous, une version purement (hum !) batch.
Elle est un peu longue, mais c'est parce qu'elle est jolie.

Attention, les espaces comptent ; mieux vaut utiliser un copier-coller
global, plutôt que de toute retaper.
Autre chose : il faut enregistrer le batch sous le nom ouinon.bat dans
le

même répertoire où on va le lancer.

@-salutations
--
Michel Claveau



@echo off
::
:: Le batch doit s'appeler ouinon.bat
::
setlocal
type ouinon.bat| find " ">%TEMP%temp.txt
type %TEMP%temp.txt| find /V "find">%TEMP%ouinon.hta
set REPONSE=NON_DEFINI
%TEMP%ouinon.hta
call C:REPONSE.BAT
del C:REPONSE.BAT
echo REPONSE : %REPONSE%
endlocal
goto :EOF



<hta:application
windowstate="normal"
caption="no"
singleinstance="yes"
/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<STYLE>

BODY{FILTER:progid:DXImageTransform.Microsoft.Gradient(startColorstr=#223366

,endColorstr=#8888AA,gradientType=1,enabled=true)}
</STYLE>
</head>

<body bgColor=#000088 background="" scroll=no onload="Finit();">

<SCRIPT language=JavaScript>
function Finit(){
self.resizeTo(360,200);
self.moveTo(110,10);
window.name='Oui-Non';
window.title='Oui-Non';
}

function traiteclic(bouton){
var wfs=new ActiveXObject("Scripting.FileSystemObject");
fichier=wfs.CreateTextFile("c:REPONSE.BAT", 1)
fichier.WriteLine("set REPONSE="+bouton);
fichier.close();
window.close();
}
</SCRIPT>

<FONT face=Arial color=#ffffaa size=3>
&nbsp;&nbsp;
Message :
<br><br><b>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Texte de la ligne un <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Texte de la deuxième ligne.<br>
<br><br><br></b>
<blockquote><blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;
<input ID="BTOUI" type="button" class="freebouton" VALUE=" Oui "
onmousedown="traiteclic('OUI');" />&nbsp;&nbsp;&nbsp;
<input ID="BTNON" type="button" class="freebouton" VALUE=" Non "
onmousedown="traiteclic('NON');" /><br>
</blockquote></blockquote>
<br>
</body></html>




Avatar
Michel Claveau
Salut !

C'est certainement parce qu'il y a un problème de sécurité : plusieurs
options sont configurées de manière à empêcher de travailler.

Je suppose que la zone "Poste de Travail" n'autorise pas les ActiveX,
ce qui gêne l'utilisation de WSH. Il se peut aussi que les contenus
actifs sont bloqués.

Perso, je pense que, en Intranet_local, et surtout en poste de travail,
il n'y a pas de risques.

Pour le bouton "NON" pas affiché, il se peut que cela soit dû aux
options d'affichage. Pour vérifier, il suffit de modifier le code HTML,
pour élargir un peu la page affichée.



--
@-salutations

Michel Claveau