Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows Batch file launch a gui with buttons

How can I create a window with multiple buttons in which do not go away apon clicking them. I'm trying to make a simple Windowed Box with buttons that can open programs. I've been using WBox.exe for my gui, however it closes the window before the program launches when you press any button. HTML crossed my mind, but I don't know how to make buttons or even know if it can launch a program on click.

like image 920
Zombie Waffles Avatar asked Jan 19 '16 01:01

Zombie Waffles


2 Answers

You may do that in a relatively simple way via a Batch-HTA hybrid file; this is an example:

<!-- :: Batch section
@echo off
setlocal

echo Select an option:
for /F "delims=" %%a in ('mshta.exe "%~F0"') do set "HTAreply=%%a"
echo End of HTA window, reply: "%HTAreply%"
goto :EOF
-->


<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" SYSMENU="no" >

<TITLE>HTA Buttons</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(374,100);

function closeHTA(reply){
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.GetStandardStream(1).WriteLine(reply);
   window.close();
}

</SCRIPT>
</HEAD>
<BODY>
   <button onclick="closeHTA(1);">First option</button>
   <button onclick="closeHTA(2);">Second option</button>
   <button onclick="closeHTA(3);">Third option</button>
</BODY>
</HTML>

Save this code in a file with .BAT extension. Perhaps you would need to adjust the values in window.resizeTo(374,100); line in order to match the resolution of your screen. This example is simple enough so you may understand it even if you know nothing about .HTA files. For further details and links on this matter, see this post.

like image 62
Aacini Avatar answered Oct 12 '22 12:10

Aacini


You can dynamically set the number of the buttons with radioButtons.bat

@echo off

::call radioButtons.bat "one" "two" "three"
for /f "tokens=* delims=" %%# in ('
  radioButtons.bat "one" "two" "three"
') do (
  set "selected=%%#"
 )
echo selected button number: %selected%
like image 45
npocmaka Avatar answered Oct 12 '22 12:10

npocmaka