PowerShell GUI - Schaltfläche/Button

PowerShell GUI - Schaltfläche/Button

Um eine Benutzeroberfläche (GUI) für Benutzer intuitiv bedienbar zu machen, können Buttons bzw. Schaltflächen eingesetzt werden. Wie diese mit der PowerShell implementiert werden, lest ihr hier.

PowerShell GUI - Schaltfläche/Button

Die PowerShell bietet viele verschiedene Möglichkeiten, um mit dem User zu interagieren. Eine sehr Gute und einfache Möglichkeit sind Schaltflächen (engl. Buttons). Schaltflächen funktionieren nach einem sehr simplen Prinzip:

Es wird gewartet, bis der User eine Aktion (betätigen der Schaltfläche) durchführt. Dann wird eine definierte Aktion ausgeführt.

 

Um eine Schaltfläche in die Oberfläche zu integrieren, sind einige wenige Zeilen Code nötig. In diesem Artikel wird Schritt für Schritt jede Zeile inklusive einer Beschreibung in einer logischen Reihenfolge genannt.

Wichtig ist, das der Name von Variablen und Objekten egal ist. Sie müssen zwar eindeutig sein und dürfen bestimmte Zeichen nicht enthalten, unterliegen ansonsten nur unserer eigenen Wahl. Beachte jedoch, dass bei mehreren Hundert Zeilen Code die Nachvollziehbarkeit sehr wichtig ist. Wähle von daher also mit Bedacht deine Namen!

 

Um einen Button zu implementieren, muss er definiert und aufgerufen werden. Hierbei wird auf das .NET Framework Add-in zurückgegriffen. Die Variable $Button ist damit als Button deklariert und wird dementsprechend behandelt.

$Button = New-Object System.Windows.Forms.Button

Jedes Objekt auf der Oberfläche benötigt Koordinaten, um dargestellt zu werden. Dies kann entweder mit einer oder mit mehreren Zeilen erledigt werden. Folgend verschiedene Möglichkeiten dafür.

Grundlegend gilt bei allen Möglichkeiten das gleiche Ergebnis. Die Schaltfläche wird 5 Pixel vom linken und 10 Pixel vom oberen Rand auf angezeigt.

Möglichkeit 1 : Dies ist der kurze Weg. Mit der ersten Zahl wird die horizontale Koordinate vom linken Rand aus angegeben. Die zweite Zahl gibt die vertikale (senkrechte) Koordinate, vom oberen Rand aus gesehen, an.

$Button.Location = New-Object System.Drawing.Size(5,10)

Möglichkeit 2 : Mit dieser Möglichkeit werden unter dem Namen $Location_Point die Koordinaten definiert. Diese werden dann in der letzten Zeile an den Button als Location übergeben.

$Location_Point = New-Object System.Drawing.Point

$Location_Point.X = 0

$Location_Point.Y = 240

$Button.Location = $Location_Point

Möglichkeit 3 : Mit einer Variablen werden die Werte vorher definiert und dann bei der Location abgerufen.

$Location_Point = "5,10"

$Button.Location = New-Object System.Drawing.Size ($Location_Point)

Möglichkeit 4 : Diese Möglichkeit ist identisch mit der Möglichkeit 3. Es werden nur zwei Variablen getrennt definiert.

$Location_Point_Width = "5"

$Location_Point_Hight = "10"

$Button.Location = New-Object System.Drawing.Size ($Location_Point_Width,Location_Point_Hight)

Nun muss die Größe der Schaltfläche auf 30 zu 20 definiert werden. Dies kann genau so wie bei der Position durchgeführt werden. Es muss lediglich Location durch Size ersetzt werden. Der Einfachheit halber wird nur die kurze Form gezeigt.

$Button.Size = New-Object System.Drawing.Size(30,20)

Ist die Größe definiert, kann der Text und der Name des Buttons definiert werden. Der Inhalt kann entweder direkt mitgegeben oder aus einer Variablen geladen werden.

$Button.Text = "Drück mich!"

Oder

$Button_Text = "Drück mich!"

$Button.Text = "$Button_Text"

Beim Namen wird der Einfachheit halber eine Definition angegeben.

$Button.Name = "Drück mich!"

Damit das Dialog-Fenster nicht einfach durch Betätigen einer Schaltfläche geschlossen wird, muss ein Ergebnis der Schaltfläche definiert werden. Damit ist gemeint, auf welche Art und Weise die Schaltfläche auf den Dialog wirken soll. Soll sie ihn schließen? Soll sie nur etwas öffnen?

Es empfiehlt sich bei einem Programmaufruf oder einer anderen Tätigkeit, außer dem Beenden des Dialogs das Ergebnis 'None' zu nutzen. Daraus ergibt sich folgende Zeile:

$Button.DialogResult = "None"

Nun folgt die eigentliche Funktion: Dabei sind der Fantasie eigentlich keine Grenzen gesetzt. In unserem Beispiel rufen wir den Edge-Browser auf und lassen ihn die Webseite technik-kiste.de anzeigen:

$Button.Add_Click({start-process microsoft-edge://technik-kiste.de})

Zum Schluss muss die Schaltfläche im Dialog sichtbar gemacht werden. Dies erfolgt über folgende Zeile. Bitte beachte das die Variable $Form den Dialog, in dem die Schaltfläche angezeigt werden soll, darstellt.

$Form.Controls.Add($Button)

Es sollte nun in etwas folgendes bei dir stehen:

$Button = New-Object System.Windows.Forms.Button

$Button.Location = New-Object System.Drawing.Size(5,10)

$Button.Size = New-Object System.Drawing.Size(30,20)

$Button.Text = "Drück mich!"

$Button.Name = "Drück mich!"

$Button.DialogResult = "None"

$Button.Add_Click({start-process microsoft-edge://technik-kiste.de})

$Form.Controls.Add($Button)

Dies könnte dich ebenfalls interessieren:

Anmeldung zum Newsletter:

Zertifizierung

introduction to cybersecurity

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.