· 

PowerShell - Grafische Eingabebox

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
  • Erste Version
**

Kommentar schreiben

Kommentare: 1
  • #1

    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

Die mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Danke, dass Du bis hierher gelesen hast! Über eine kleine Spende würde ich mich freuen.
**