Batch MassageBox variieren
Guten Abend,
hier fand ich schon tolle Anregungen zu Fragen anderer User. Vielleicht geht es dem einen anderen bei meiner Frage ähnlich...
Es um MessageBoxen, die aus einem Batch heraus starten. Hier mal ein Beispiel:
Jetzt habe ich folgende Fragen:
1. Wie kann ich eine MessageBox erzeugen, die kein Button enthält und nach definierter Zeit verschwindet?
2. Wie kann ich die MessageBox als Splash-Screen Ersatz verwenden? (Das wäre wie Frage 1, aber vielleicht noch mit eigenem Icon)
3. Wie kann ich die MessageBox mit einer Eingabemöglichkeit versehen? (Wobei die Eingabe dann weiterverarbeitet wird im Batch)
4. Wie kann ich mithilfe der MessageBox eine Datei auswählen? (Zur weiteren Verwendung im Batch als Variable)
Über die eine oder andere Antwort würde ich mich freuen! Vielleicht gibt es auch Erfahrungen mit ähnlichen Codeschnipseln, die besser funktionieren?
Viele Grüße
OKIDOKI
hier fand ich schon tolle Anregungen zu Fragen anderer User. Vielleicht geht es dem einen anderen bei meiner Frage ähnlich...
Es um MessageBoxen, die aus einem Batch heraus starten. Hier mal ein Beispiel:
@ECHO OFF & SETLOCAL
ECHO x = MsgBox("Hier ein Beipsieltext" ^& vbCrLf ^& _>>%temp%\msgbox.vbs"
ECHO "Weiterer Beispieltext, 2. Zeile.", _>>"%temp%\msgbox.vbs"
ECHO 1 + 16, _>>"%temp%\msgbox.vbs"
ECHO "Überschrift")>>"%temp%\msgbox.vbs"
ECHO WScript.Quit(x)>>"%temp%\msgbox.vbs"
:: vbs aufrufen:
cls
CALL "%temp%\msgbox.vbs"
:: Errorlevel für spätere Verarbeitung in Variable sichern:
SET /A "Returncode=%errorlevel%"
:: vbs löschen:
DEL "%temp%\msgbox.vbs"
:: mach irgendwas mit der Variable:
IF %Returncode%==1 GOTO was auch immer
IF %Returncode%==3 GOTO was auch immer
IF %Returncode%==7 GOTO was auch immer
Jetzt habe ich folgende Fragen:
1. Wie kann ich eine MessageBox erzeugen, die kein Button enthält und nach definierter Zeit verschwindet?
2. Wie kann ich die MessageBox als Splash-Screen Ersatz verwenden? (Das wäre wie Frage 1, aber vielleicht noch mit eigenem Icon)
3. Wie kann ich die MessageBox mit einer Eingabemöglichkeit versehen? (Wobei die Eingabe dann weiterverarbeitet wird im Batch)
4. Wie kann ich mithilfe der MessageBox eine Datei auswählen? (Zur weiteren Verwendung im Batch als Variable)
Über die eine oder andere Antwort würde ich mich freuen! Vielleicht gibt es auch Erfahrungen mit ähnlichen Codeschnipseln, die besser funktionieren?
Viele Grüße
OKIDOKI
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 180049
Url: https://administrator.de/forum/batch-massagebox-variieren-180049.html
Ausgedruckt am: 07.04.2025 um 09:04 Uhr
11 Kommentare
Neuester Kommentar
Hi,
ist dir eigentlich bewusst, das es sich dabei um Visual Basic handelt !?
Und dann denke ich, auf Grund deiner Fragen, das es vermutlich das beste ist dich auf die Funktions-Referenz im MSDN hinzuweisen:
MSDN - MsgBox-Funktion (Visual Basic)
Manchmal ist es besser, die Möglichkeiten zu erklären als all das aufzulisten was nicht möglich ist
~Arano
ist dir eigentlich bewusst, das es sich dabei um Visual Basic handelt !?
Und dann denke ich, auf Grund deiner Fragen, das es vermutlich das beste ist dich auf die Funktions-Referenz im MSDN hinzuweisen:
MSDN - MsgBox-Funktion (Visual Basic)
Manchmal ist es besser, die Möglichkeiten zu erklären als all das aufzulisten was nicht möglich ist
~Arano
Hallo OKIDOKI!
Ergänzend zu Aranos Hinweis: Neben der "
und eine "
Hinsichtlich "Splash-Screen": Grundsätzlich nervt sowas
(aber nicht halb so viel, wie die Frage, ob ich das Super-Duper-Überdrüber-Programm denn wirklich schon beenden will) ...
Grüße
bastla
Ergänzend zu Aranos Hinweis: Neben der "
MsgBox
" kennt VBS auch ein "PopUp
" [Edit] hast Du schon selbst gefunden [/Edit] - Verwendung für eine auf 5 Sekunden begrenzte Anzeige etwa:@ECHO OFF & SETLOCAL
>%temp%\msgbox.vbs ECHO x = WScript.CreateObject("WScript.Shell").PopUp("Hier ein Beipsieltext" ^& vbCrLf ^& _
>>%temp%\msgbox.vbs ECHO "Weiterer Beispieltext, 2. Zeile.", _
>>%temp%\msgbox.vbs ECHO 5, _
>>%temp%\msgbox.vbs ECHO "Überschrift", _
>>%temp%\msgbox.vbs ECHO 0 + 64)
>>%temp%\msgbox.vbs ECHO WScript.Quit(x)
:: vbs aufrufen:
cls
%temp%\msgbox.vbs
:: Errorlevel für spätere Verarbeitung in Variable sichern:
SET /A "Returncode=%errorlevel%"
:: vbs löschen:
DEL "%temp%\msgbox.vbs"
:: mach irgendwas mit der Variable:
IF %Returncode%==-1 GOTO :Zeitablauf
IF %Returncode%==1 GOTO :EnterOderGeschlossen
InputBox
", deren Ergebnis Du etwa so erhältst:@ECHO OFF & SETLOCAL
>%temp%\msgbox.vbs ECHO WScript.Echo InputBox("Hier ein Beipsieltext" ^& vbCrLf ^& _
>>%temp%\msgbox.vbs ECHO "Weiterer Beispieltext, 2. Zeile.", _
>>%temp%\msgbox.vbs ECHO "Überschrift", _
>>%temp%\msgbox.vbs ECHO "Defaultwert")
cls
set "Eingabe="
for /f "delims=" %%i in ('cscript //nologo %temp%\msgbox.vbs') do set "Eingabe=%%i"
DEL "%temp%\msgbox.vbs"
if defined Eingabe echo Eingabe: %Eingabe%
Grüße
bastla
Hallo OKIDOKI!
: IrfanView oder auch XnView kann aus einem Bild eine "exe" erzeugen, die Du dann zB (nachdem sie per "
Grüße
bastla
Vielleicht noch ne Idee fürn Splash Screen?
Wenn es unbedingt sein muss start
" aufgerufen wurde) über "taskkill
" wieder beenden könntest (ev kann auch die Slideshow mit Zeitsteuerung ohne Wiederholung gestartet werden und sich daher nach Ablauf der eingestellten Zeit selbst beenden [Edit] eben mit "XnView" getestet - geht etwa so: Erstellen - Dia-Show - keine "Schleife" - Weitere Optionen ("Ohne Titelleiste und Fensterrahmen", keinen "Rahmen" verwenden, keine "Informationen anzeigen") - EXE/SCR erstellen [/Edit]) ...Grüße
bastla
Hallo OKIDOKI.
Ich lasse mal die Sinnhaftigkeit, soetwas in einen Batch einzubinden, außen vor. (Ein- und Ausgaben könntest du genauso im Batchfenster vornehmen, nicht wahr.)
Grüße
rubberman
Ich lasse mal die Sinnhaftigkeit, soetwas in einen Batch einzubinden, außen vor. (Ein- und Ausgaben könntest du genauso im Batchfenster vornehmen, nicht wahr.)
@set @x=0 /* &rem Diese Zeile ist für beide Sprachen valider Code
@echo off
set lf=^
set ^"\n=^^^%lf%%lf%^%lf%%lf%^^"&rem Wir basteln ein LineFeed
:: Popup
set JS_Text=Hallo%\n%Welt!
set JS_Title=Das ist ein "Test"
set /a JS_Style=1
set /a JS_Timeout=5
cscript //nologo //e:jscript "%~f0" out
echo Returncode: %errorlevel%
echo ---------------------------------------
:: Input
set JS_Text=Wie heisst du?%\n%(Vorname genuegt)
set JS_Title=Das ist ein "Test"
for /f "delims=" %%i in ('cscript //nologo //e:jscript "%~f0" in') do set "str=%%i"
echo(%str%
pause
goto :eof
::::::::::::::::::::::::::::::::::::::::::::::::::::
hier startet das JS */
var oWSH = new ActiveXObject("WScript.Shell");
var text = oWSH.ExpandEnvironmentStrings("%JS_Text%");
var title = oWSH.ExpandEnvironmentStrings("%JS_Title%");
var style = oWSH.ExpandEnvironmentStrings("%JS_Style%");
var timeout = oWSH.ExpandEnvironmentStrings("%JS_Timeout%");
switch(WScript.Arguments(0))
{
case "out":
WScript.Quit(oWSH.Popup(text, timeout, title, style));
break;
case "in":
var oSC = new ActiveXObject("ScriptControl");
oSC.Language="VBScript";
var str = 'InputBox("' + (text.replace(/"/g,'"&Chr(34)&"')).replace(/\n/g, '"&Chr(10)&"') + '", "' + title.replace(/"/g,'"&Chr(34)&"') + '")';
WScript.Echo(oSC.eval(str));
WScript.Quit();
break;
default:
WScript.Quit();
}
Grüße
rubberman
[OT] @frankoehli
Das professionelle Erscheinungsbild der durch Splashscreens aufgebrezelten Massageboxen wird abgerundet durch die Info
@OKIDOKI
Bei allem Respekt vor den hier gezeigten handwerklichen Leistungen, mit denen deine Anforderungen umgesetzt wurden..
Du solltest dir dennoch bewusst sein, dass dieser Thread eher in die Rubrik "Wie kann ich Spiegeleier im Toaster zubereiten?" gehört.
Ein Batch dient dazu, wiederkehrende Abläufe zu automatisieren - möglichst ohne Benutzereingriff und im Idealfall unbemerkt im Hintergrund.
Ist eine winzig kleine Nische - aber der Bedarf für ein derartiges Arbeite-unauffällig-im-Hintergrund-Werkzeug ist nach wie vor vorhanden -unabhängig davon, wie viele neue animierte neue Appz und Blasen mit jeder neuen Windows-Version auf der GUI dazukommen.
Dorthin - auf das graphical user interface gehört alles, was die Interaktion mit dem Benutzer erfordert oder dessen Aufmerksamkeit auf sich ziehen sollte.
Und dann aber auch bitte mit dem dort angebrachten Werkzeug erzeugt... also nicht mehr unter einer CMD-Instanz laufend
Ich weiss - Nägel lassen sich mit der Schlagbohrmaschine in die Wand treiben und Schrauben auch mit dem Hammer...
Grundsätzlich finde ich aber schon, dass wir hier im Forum auch die Wahl des passenden Werkzeugs vermitteln sollten
Grüße
Biber
[/OT]
Das professionelle Erscheinungsbild der durch Splashscreens aufgebrezelten Massageboxen wird abgerundet durch die Info
ECHO x = MsgBox("Hier ein Beipsieltext" ^& vbCrLf ^& _>>%temp%\msgbox.vbs"
@OKIDOKI
Bei allem Respekt vor den hier gezeigten handwerklichen Leistungen, mit denen deine Anforderungen umgesetzt wurden..
Du solltest dir dennoch bewusst sein, dass dieser Thread eher in die Rubrik "Wie kann ich Spiegeleier im Toaster zubereiten?" gehört.
Ein Batch dient dazu, wiederkehrende Abläufe zu automatisieren - möglichst ohne Benutzereingriff und im Idealfall unbemerkt im Hintergrund.
Ist eine winzig kleine Nische - aber der Bedarf für ein derartiges Arbeite-unauffällig-im-Hintergrund-Werkzeug ist nach wie vor vorhanden -unabhängig davon, wie viele neue animierte neue Appz und Blasen mit jeder neuen Windows-Version auf der GUI dazukommen.
Dorthin - auf das graphical user interface gehört alles, was die Interaktion mit dem Benutzer erfordert oder dessen Aufmerksamkeit auf sich ziehen sollte.
Und dann aber auch bitte mit dem dort angebrachten Werkzeug erzeugt... also nicht mehr unter einer CMD-Instanz laufend
Ich weiss - Nägel lassen sich mit der Schlagbohrmaschine in die Wand treiben und Schrauben auch mit dem Hammer...
Grundsätzlich finde ich aber schon, dass wir hier im Forum auch die Wahl des passenden Werkzeugs vermitteln sollten
Grüße
Biber
[/OT]