batch oder vbs?
ich brauche eure Hilfe und zwar:
ich möchte ein Batch oder vbs Skript erstellen dass ein Programm z.B. hallo.hta
öffnet aber sobald sich hallo.hta schließt soll die Batch oder vbs Datei
hallo.hta wieder öffnen
1 Antwort
Wir leben inzwischen im Ende des Jahres 2023.
Auch wenn ich zu den alten Hasen gehöre, welche hin und wieder mal auf alten Kram zugreifen um mal etwas Quick&Dirty zurechtzubiegen...
VBScript wird demnächst aus dem System entfernt.
...und mit dem Ende des InternetExplorer dürften auch die Tage von mshta gezählt sein... (mshta.exe ist lediglich ein Wrapper für den IE)
also lass den alten Müll in seinem "Sarg".
demo.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
For i = 1 to 5
WshShell.Run "mshta.exe ""about: Hello World""",1,true
Next
- https://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
- https://www.a-coding-project.de/ratgeber/vbscript/schleifen
es geht auch so mit batch:
Demo.cmd
@echo off
:loop
mshta.exe "about: Hello World"
goto :loop
Heute verwendet man C#, oder wenn es ein Script aus der Hüfte sein soll Powershell
...und Powershell kann sehr wohl GUI , sogar besser als HTA
demo.ps1
# das ist das eigentliche lächerlich kleine Herz des Programms
Function DoAction ($Eventquelle)
{
$output = &{
'Ereignisquelle: {0}' -f $Eventquelle
'die Aktuell Zeit ist: {0}' -f (Get-Date -f "HH:mm:ss")
$myDice = 1..6 | Get-Random
'Deine Glueckszahl lautet : {0}' -f $myDice
''
}|out-string
$MyTextbox.Text += $output
$MyTextbox.SelectionStart = $MyTextbox.Text.Length;
$MyTextbox.ScrollToCaret()
}
#ab hier ist eigentlich alles "malen der Oberfläche"
Add-Type -a System.Windows.Forms
$MyTimer = New-Object System.Windows.Forms.Timer
$MyTimer.Interval = 5000 #Auslösezeit für Timerevent in Millisekunden
$MyTimer.Add_Tick({DoAction 'Timmy der Timer'}) #definiere die Aktion für einen Tickevent dieses Timers ausgelöst wird
$MyTimer.Start()
$MyActionButton = New-Object 'System.Windows.Forms.Button'
$MyActionButton.Location = '10, 10'
$MyActionButton.Name = "MyActionButton"
$MyActionButton.Size = '200, 25'
$MyActionButton.TabIndex = 0
$MyActionButton.Text = "&zwischendurch abrufen"
$MyActionButton.UseVisualStyleBackColor = $true
$MyActionButton.Add_Click({DoAction 'Der bloede Knopf da oben'}) #definiere die Aktion für einen Clickevent dieses Buttons ausgelöst wird
$MyTextbox = New-Object 'System.Windows.Forms.TextBox'
$MyTextbox.Location = '12, 50'
$MyTextbox.Multiline = $true
$MyTextbox.Name = "MyTextbox"
$MyTextbox.Size = '470, 150'
$MyTextbox.Scrollbars = "Vertical"
$MyTextbox.TabIndex = 1
$Form = New-Object 'System.Windows.Forms.Form'
$Form.Size = '500, 250'
$Form.Controls.Add($MyActionButton)
$Form.Controls.Add($MyTextbox)
$Form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedDialog
$Form.Name = "Form"
$Form.Text = "Ich bin Glueckszeitsammler"
$Form.Add_Load({DoAction 'Einer muss anfangen'}) #definiere die Aktion für Laden-beendet-event des Programms ausgelöst wird
# starte GUI
While (1) {$Null=$Form.ShowDialog()} #starte die Form immer wieder neu