Die mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Allgemein
Hier habe ich Euch ein Beispiel für eine grafische Eingabebox. Das Ergebnis wird als Nachrichtenbox angezeigt. Das fertige PowerShell Skript erzeugt folgende grafische Oberfläche:
Skript
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# Allgemeines Windows Form vorbereiten
$Form = New-Object System.Windows.Forms.Form
$Form.Text = "Eingabebox"
$Form.StartPosition = "CenterScreen"
$Form.Size = New-Object System.Drawing.Size(600,150)
$Form.MinimumSize = New-Object System.Drawing.Size(600,150)
$Form.MaximumSize = New-Object System.Drawing.Size(600,150)
$Form.SizeGripStyle = "hide"
$Form.Topmost = $True
# Textbox
$TextBox = New-Object System.Windows.Forms.TextBox
$TextBox.Location = New-Object System.Drawing.Size(10,40)
$TextBox.Size = New-Object System.Drawing.Size(565,20)
# Beschriftung
$Label = New-Object System.Windows.Forms.Label
$Label.Location = New-Object System.Drawing.Size(10,20)
$Label.Size = New-Object System.Drawing.Size(565,20)
$Label.Text = "Hier könnt Ihr den Text eingeben."
# Schaltflächen
$ButtonOK = New-Object System.Windows.Forms.Button
$ButtonOK.Location = New-Object System.Drawing.Size(425,80)
$ButtonOK.Size = New-Object System.Drawing.Size(75,23)
$ButtonOK.Text = "OK"
$ButtonOK.Add_Click({$Form.Close()})
$ButtonExit = New-Object System.Windows.Forms.Button
$ButtonExit.Location = New-Object System.Drawing.Size(500,80)
$ButtonExit.Size = New-Object System.Drawing.Size(75,23)
$ButtonExit.Text = "Abbrechen"
$ButtonExit.Add_Click({$TextBox.Text="";$Form.Close()})
# Textbox Tastenerkennung
$Form.KeyPreview = $True
$Form.Add_KeyDown({if ($_.KeyCode -eq "Enter") {$Form.Close()}})
$Form.Add_KeyDown({if ($_.KeyCode -eq "Escape") {$TextBox.Text="";$Form.Close()}})
# Controls hinzufügen
$Form.Controls.Add($TextBox)
$Form.Controls.Add($Label)
$Form.Controls.Add($ButtonOK)
$Form.Controls.Add($ButtonExit)
# Windowsfenster anzeigen
$Form.ShowDialog()
if ($TextBox.Text -ne "") {
[System.Windows.Forms.MessageBox]::Show("Ergebnis = " + $TextBox.Text,"Eingabebox",[System.Windows.Forms.MessageBoxButtons]::OKCancel)
}
Änderungsprotokoll
Datum | Beschreibung |
20.01.2022 |
|
Kommentar schreiben
Renate (Freitag, 31 Mai 2024 09:33)
Hallo Michael,
das funktioniert super. Gibt es eigentlich eine Möglichkeit, statt einer Eingabe eine Systemabfrage zu integrieren und das Ergebnis auszugeben?
Speziell die Systemstartzeit würde mich interessieren. Ich habe schon viel rumgesucht, aber irgendwie noch nichts gefunden, wie man so eine Abfrage in einer Messagebox anzeigen kann. Könntest du mir da ein bisschen auf die Sprünge helfen? Ich habe schon ein bisschen mit Powershell gemachet, aber sowas habe ich noch nicht hinbekommen.
Vielen Dank und viele Grüße
Renate