Hinweisfenster einblenden, welches vor einem durch die Batch gestartetem Tool erscheint
Hallo zusammen,
ich habe eine Batch, die zum Testen erst einmal mspaint wie folgt startet.
[code]
@echo off
REM hier den AnWendungspfad eintragen
cd "c:\wtsrv\system32"
mspaint.exe
...
[/code]
Diese Batch läuft "unsichtbar". Paint wird nicht per start gestartet, da noch etwas passieren soll, sobald Paint geschlossen wird. Dies passiert bei den Pünktchen.
Beim Anwender soll beim Aufruf also paint starten. Gleichzeitig soll im Vordergrund ein Hinweisfenster eingeblendet werden, das den Anwender über eine Wartezeit von einem definierten Zeitraum (z.B. 10 Sekunden) informiert und dann verschindet, so dass er dann das gestartete Paint sieht.
Idee:
Ich mache eine Hinweis.bat, welche den Anwender über die Wartezeit informiert und das dann nach dem von mir gewünschten Zeitraum wieder verschwindet.
Den Aufruf der Hinweis.bat schreibe ich vor das mspaint.exe
Problem:
Rufe ich das mit
[code]
start "" hinweis.bat
[/code]
auf, dann startet nach meiner Hinweis.bat sofort danach Paint. Allerdings befindet sich das Fenster mit dem Hinweis im Hintergrund hinter Paint.
Rufe ich die Hinweis.bat ohne das start "" auf, dann wird Paint erst gestartet, wenn die Hinweis.bat abgearbeitet wurde.
Frage:
Wie kann ich paint starten und vor paint einen Hinweis setzen der den Anwender informiert, zum Warten zwingt und der im Vordergrund bleibt?
Wie gesagt muss der Aufruf vor dem paint-Start erfolgen, da die Batch, die Paint startet, weiterhin noch aktiv bleibt und noch etwas ausführen soll, sobald Paint geschlossen wird.
Viele Grüße
Martin
ich habe eine Batch, die zum Testen erst einmal mspaint wie folgt startet.
[code]
@echo off
REM hier den AnWendungspfad eintragen
cd "c:\wtsrv\system32"
mspaint.exe
...
[/code]
Diese Batch läuft "unsichtbar". Paint wird nicht per start gestartet, da noch etwas passieren soll, sobald Paint geschlossen wird. Dies passiert bei den Pünktchen.
Beim Anwender soll beim Aufruf also paint starten. Gleichzeitig soll im Vordergrund ein Hinweisfenster eingeblendet werden, das den Anwender über eine Wartezeit von einem definierten Zeitraum (z.B. 10 Sekunden) informiert und dann verschindet, so dass er dann das gestartete Paint sieht.
Idee:
Ich mache eine Hinweis.bat, welche den Anwender über die Wartezeit informiert und das dann nach dem von mir gewünschten Zeitraum wieder verschwindet.
Den Aufruf der Hinweis.bat schreibe ich vor das mspaint.exe
Problem:
Rufe ich das mit
[code]
start "" hinweis.bat
[/code]
auf, dann startet nach meiner Hinweis.bat sofort danach Paint. Allerdings befindet sich das Fenster mit dem Hinweis im Hintergrund hinter Paint.
Rufe ich die Hinweis.bat ohne das start "" auf, dann wird Paint erst gestartet, wenn die Hinweis.bat abgearbeitet wurde.
Frage:
Wie kann ich paint starten und vor paint einen Hinweis setzen der den Anwender informiert, zum Warten zwingt und der im Vordergrund bleibt?
Wie gesagt muss der Aufruf vor dem paint-Start erfolgen, da die Batch, die Paint startet, weiterhin noch aktiv bleibt und noch etwas ausführen soll, sobald Paint geschlossen wird.
Viele Grüße
Martin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189921
Url: https://administrator.de/forum/hinweisfenster-einblenden-welches-vor-einem-durch-die-batch-gestartetem-tool-erscheint-189921.html
Ausgedruckt am: 22.12.2024 um 22:12 Uhr
17 Kommentare
Neuester Kommentar
Hallo blacksun!
Versuchs mal mit diesem Script (*.vbs):
Gruß Dieter
Versuchs mal mit diesem Script (*.vbs):
MsgBox "Bitte warten!", vbInformation,"Paint wird gestartet..."
CreateObject("Wscript.Shell").Run "mspaint.exe", 10, False
Gruß Dieter
... und so
oder so (eher nicht )?
Grüße
bastla
[Edit] Parameter "bWaitOnReturn" in Variante 1 auf
Set Sh = CreateObject("WScript.Shell")
Sh.PopUp "Paint wird gestartet ...", 10
Sh.Run "mspaint.exe", 8, True
Set Sh = CreateObject("WScript.Shell")
Sh.Run "mspaint.exe", 1, False
Sh.PopUp "Paint wird gestartet...", 10
bastla
[Edit] Parameter "bWaitOnReturn" in Variante 1 auf
True
geändert [/Edit]
Hallo bastla!
Mhm, dass Script soll doch nachdem Paint geschlossen ist weiterlaufen. Also eher Variante 1 mit True am Ende oder nicht?
Gruß Dieter
Mhm, dass Script soll doch nachdem Paint geschlossen ist weiterlaufen. Also eher Variante 1 mit True am Ende oder nicht?
Gruß Dieter
moin blacksun,
sowas ähnliches gabs schonmal.
Im cmd gehts auch:
Waitfor wird mindestens dafür gebraucht.
Timeout könnte duch ping ersetzt werden.
Gruß Phil
sowas ähnliches gabs schonmal.
Im cmd gehts auch:
@echo off
setlocal
set /a Timer=15
set "WSig=PaintFertig%Random%"
start "Warte auf Ende von Paint" /min cmd /c "mspaint && waitfor /si %wsig% "
timeout /t 2 >nul
start "Moment Bitte ..." cmd /c " mode 50,10 &(for /l %%i in (%timer% -1 1) do title Bitte noch %%i sekunde^(n^) Warten. &cls &echo Paint startet ... moment&<nul set /p "=Warten sie Bitte noch %%i sekunde(n)" &timeout /t 1 /nobreak >nul) "
waitfor %wsig%
title jetzt kanns hier weitergehen weil Paint beendet wurde.
for /l %%i in (5 -1 1) do cls &<nul set /p "=Programm endet in %%i sekunde(n)" &timeout /t 1 /nobreak >nul
exit /b
Timeout könnte duch ping ersetzt werden.
Gruß Phil
Hallo blacksun!
Na, in VBS dann mit 2 Skripts:
Skript1:
Skript2 (PopUp.vbs):
Gruß Dieter
[edit] bastlas Vorschlag übernommen [/edit]
Na, in VBS dann mit 2 Skripts:
Skript1:
Set Sh = CreateObject("WScript.Shell")
Sh.Run Replace(WScript.ScriptFullName, WScript.ScriptName, "PopUp.vbs"), 0, False
Sh.Run "mspaint.exe", 3, True
WScript.Sleep 500 'anpassen
CreateObject("WScript.Shell").PopUp "Paint wurde gestartet bitte 15 Sekunden warten...", 15
Gruß Dieter
[edit] bastlas Vorschlag übernommen [/edit]
Hallo blacksun!
Hier noch eine 'PopUp.hta', die in der Anzeige die Sekunden herunterzählt und auch solange den Fokus behält:
@bastla
Deinen Vorschlag habe ich oben eingebaut
Gruß Dieter
Hier noch eine 'PopUp.hta', die in der Anzeige die Sekunden herunterzählt und auch solange den Fokus behält:
<html>
<head>
<title>Paint gestartet...</title>
<HTA:APPLICATION
ID = "AutoRefresh"
ApplicationName = "Paint"
Scroll = "no"
SysMenu = "no"
SingleInstance="yes"/>
</head>
<SCRIPT LANGUAGE="VBScript">
Const WaitSecond = 15 'Wartezeit in Sekunden
Const WindowWidth = 260 'Fensterbreite
Const WindowHeight = 100 'Fensterhöhe
Dim Zeit, oShell
Sub Window_OnLoad()
Window.ResizeTo WindowWidth, WindowHeight
Window.MoveTo ((Screen.Width - WindowWidth) / 2), ((Screen.Height - WindowHeight) / 2)
Set oShell = CreateObject("WScript.Shell")
Zeit = DateAdd("s", WaitSecond, Now)
Call RefreshTime: TimerID = Window.SetInterval("RefreshTime", 100)
End Sub
Sub RefreshTime()
If Zeit <= Now Then Close
oShell.AppActivate "Paint gestartet..."
Document.All.Sek.Value = Right(Space(4) & Second(Zeit - Now), 5)
End Sub
</SCRIPT>
<body bgcolor='buttonface' style='font-family:Arial;font-size:12px'>
Bitte noch warten
<input type='text' name='Sek' value='' readonly='readonly' size='1' style='font-family:Arial;font-size:12px'>
Sekunden
</body>
</html>
@bastla
Deinen Vorschlag habe ich oben eingebaut
Gruß Dieter