Batch mit Mausklick?
Ich versuche gerade mit einer batch Datei ein Menü zu erstellen.
Dazu brauche ich aber ein klickbares UI.
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Batch
Das geht z.B. mit BatBox. Hier mal ein altes Beispielmenü von mir:
@echo off & color f0 & title MENU
::check if batbox already exists
if not exist "%WINDIR%\system32\batbox.exe" call :createBatBox
:MENU
cls
::shows menu with batbox commands
batbox /g 1 1 /c 0xf3 /d "MENU"
batbox /g 1 3 /c 0xf1 /d "option1"
batbox /g 1 4 /c 0xf1 /d "option2"
batbox /g 1 5 /c 0xf1 /d "option3"
:MOUSE
::Wait for mouse input
for /f "tokens=1,2 delims=:" %%x in ('batbox /m') do (
set "mouse.x=%%x"
set "mouse.y=%%y"
set "mouse.click=%%z"
)
::Check for every menu item
if %mouse.x% GEQ 1 if %mouse.x% LEQ 4 if %mouse.y% EQU 1 goto men1
if %mouse.x% GEQ 1 if %mouse.x% LEQ 7 if %mouse.y% EQU 3 goto opt1
if %mouse.x% GEQ 1 if %mouse.x% LEQ 7 if %mouse.y% EQU 4 goto opt2
if %mouse.x% GEQ 1 if %mouse.x% LEQ 7 if %mouse.y% EQU 5 goto opt3
::else::
goto MOUSE
:men1
batbox /g 1 1 /c 0xfc /d "MENU" /w 300
goto MENU
:opt1
cls
echo You selected option1
pause
exit
:opt2
cls
echo You selected option2
pause
exit
:opt3
cls
echo You selected option3
pause
exit
:createBatBox
if exist batbox.exe goto step2
echo generiere batbox.exe ...
for %%b in (
4D5343460000000073030000000000002C000000000000000301010001000000
00000000470000000100010000060000000000000000FE4259B5200062617462
6F782E657865003FD9412724030006434BB5545F485361143F5737F0CF726B3A
102ABB528B1EC24813421026D3529AB59C184460D7ED6EF7CE79EFB8F74A562F
0B1D543EF5143DC60483C27AF0C14248B18710A4979ECA40426A0329A1B21ECA
AF73EE9D4E21B287FAB6DF77CFF99DF37DDFEF3B3B779D1752C001800D5CC018
808F1C1C3ED879A41015FB9F56C064E942ED141758A8ED96649D4F6A6A4C1306
F8B0A028AAC1F789BC36A8F0B2C2B79E0DF1036A44ACDB557670638F601B4080
E3A0C3FBFDDC06B7044EAE9CE34EA2283041C3B505A48E9E450079B99B69C05B
FC4B1457BC75DD6666DECD8F981BE02EF71797FDC7A32E9A100C7C1EB1E505D9
2CDD5BC7252AC57F1E92ABCA0771EB21D968029C98E76125D25F9967D1ED838C
8372D6F24E093AD9175832FFADCAD43C7F8C459F9442D39D1E8C3947C6913F15
7BB79A7BCD18CBA6D10BB24687B9E33226E4E6904E5DE37A9DE90A3C9C7926F1
98F48C73E401F2CC731FBD66BAB2335D6E8689B0336A13E6798C76B601772CB6
F7E2565EEAD64C1589A931C93092B34B2ECE4E1C6BB466EBE82C1DDD4E8A3ED3
5ED25137B163B861AE9ED8B7D452F182D42F945F4D111213920E14F28B908D57
B3C61233710903560539A9DA3CD0E257901F6EA600D664019744879B295EE44C
3F43EF9BFD303A3FD172A61FE13CDABC17FD9BEBB39F5CD7DFD3BDEEF155565D
6E63B4D8CC0E9EEF910E15745C5D47755EAB32AB245726A20A890C55275B4616
952417A44035BA71FC8498670A970F3F77CCCD7E2862E3F524D44EBFBB6D741F
3D46F7A4DF3847E885988B835574AF0EDE4893F9056F1874970F26101F111711
B6DD3EA8411C472C20A611FD31211C8D0CA89737DAEC4665A1E532F8CA8DA13F
ED2E7013682FBA7FDFA29DA11E7F57775D6B2000A7DBBACEB4051AEA4D077EE0
02076E54833881E846488864FEB09DE2D8AAA2113222ED82124988E48744C3AF
2ABA9A103BF17F6A3BD32D0E192D86A1C97D8386B82DE21FD474550BAABA6CC8
AA42ABBA4421920F7628C941A385F213A298DCB6AE55D69309E18A79D40C6A9A
47BC422C2356106B799D7F8AE16D345931A264F5C644232C9916990382AC085A
4C475F1C920D93EFEF932C4B3734434D00FC02
) Do >>t.dat (Echo.For b=1 To len^("%%b"^) Step 2
ECHO WScript.StdOut.Write Chr^(Clng^("&H"^&Mid^("%%b",b,2^)^)^) : Next)
Cscript /b /e:vbs t.dat>batbox.ex_
Del /f /q /a t.dat >nul 2>&1
Expand -r batbox.ex_ >nul 2>&1
Del /f /q /a batbox.ex_ >nul 2>&1
:step2
echo verschiebe batbox nach system32 ...
move "batbox.exe" "%WINDIR%\system32\"
Die x-Werte musst du eventuell an deine Menüeinträge anpassen.
Du könntest eine hta-Seite bauen und in dieser mit VBS oder JS skripten
ich wollte die aber ehr mit einer .dll datei machen.