Powershell FORM beim starten direkt Befehl ausführen
Moin,
ich erstelle mit Visual Studio 2019 eine Windows Form die 3 Dienste (Status "Running" oder eben Status "Stopped" in einer TextBox anzeigt.
Dort gibt es Buttons die diese Dienste Starten, beenden oder neustarten können.
Wenn einer diese Buttons geklickt wird ändert sich die TextBox Anzeige zum jeweiligen Status UND die TextBox wird beim Status "Running" als BackColor grün (lime) und beim Status "Stopped" rot (red) eingefärbt.
Soweit klappt auch alles.
Nun ist es so das wenn die Form gestartet wird diese Textbox zwar den Status (Running oder Stopped) korrekt in der TextBox (Enabled = False) anzeigt aber nach dem Start noch kein korrekten BackColor setzt.
Wie kriege ich das hin das bereits beim Start diese Prüfung (Ist das korrekt so ?) ausgeführt und die Textboxen entsprechend gefärbt werden ?
bzw. wo muß ich diesen Code (Richtig?) einsetzen damit das beim Start direkt greift ?
Hinter [void]$windows.ShowDialog() ?
Vor [void]$windows.ShowDialog() ?
Refresh() nach if ... else oder vor ? (Würde mal sagen nach dem If...Else...)
Ganz am Anfang des Scripts ?
oder gibt es eine Scriptanweisung ala OnFormLoad() ?
Google hat mir da nicht wirklich weitergeholfen oder ich habe falsch gesucht.
BackGround-Color-Change funktionirt einwandfrei bei Klick auf den entsprechenden Button wenn die Form bereits gestartet ist (z.B. Dienst stoppen färbt die TextBox erfolgreich rot und der Dienststatus wird korrekt angezeigt.
Der derzeitige Status der Dienste wird bereits ganz am Anfang des Script abgefragt und abgelegt :
$Servicepapsftp = 'PAPSFTP'
$Servicewebcron = "PAPWebcron"
$Servicedicomserver = "PAPDicomServer"
$papsftpService = Get-Service -Name $Servicepapsftp
$papwebcronservice = Get-Service -Name $Servicewebcron
$papdicomserverservice = Get-Service -Name $Servicedicomserver
ich erstelle mit Visual Studio 2019 eine Windows Form die 3 Dienste (Status "Running" oder eben Status "Stopped" in einer TextBox anzeigt.
Dort gibt es Buttons die diese Dienste Starten, beenden oder neustarten können.
Wenn einer diese Buttons geklickt wird ändert sich die TextBox Anzeige zum jeweiligen Status UND die TextBox wird beim Status "Running" als BackColor grün (lime) und beim Status "Stopped" rot (red) eingefärbt.
Soweit klappt auch alles.
Nun ist es so das wenn die Form gestartet wird diese Textbox zwar den Status (Running oder Stopped) korrekt in der TextBox (Enabled = False) anzeigt aber nach dem Start noch kein korrekten BackColor setzt.
Wie kriege ich das hin das bereits beim Start diese Prüfung (Ist das korrekt so ?) ausgeführt und die Textboxen entsprechend gefärbt werden ?
$dienststatuspapsftpTextBox.Text = ($papsftpService.status.ToString());
$dienststatuspapwebcronTextBox.Text = ($papwebcronservice.status.ToString());
$dienststatuspapdicomserverTextBox.Text = ($papdicomserverservice.status.ToString());
$dienststatuspapsftpTextBox.Refresh()
$dienststatuspapdicomserverTextBox.Refresh()
$dienststatuspapwebcronTextBox.Refresh()
if ($papsftpService -eq "Stopped") {$dienststatuspapsftpTextBox.BackColor = 'lime'}
else { $dienststatuspapsftpTextBox.BackColor = 'red'}
if ($papdicomserverService -eq "Stopped") {$dienststatuspapdicomserverTextBox.BackColor = 'lime'}
else { $dienststatuspapdicomserverTextBox.BackColor = 'red'}
if ($papwebcronService -eq "Stopped") {$dienststatuspapwebcronTextBox.BackColor = 'lime'}
else { $dienststatuspapwebcronTextBox.BackColor = 'red'}
bzw. wo muß ich diesen Code (Richtig?) einsetzen damit das beim Start direkt greift ?
Hinter [void]$windows.ShowDialog() ?
Vor [void]$windows.ShowDialog() ?
Refresh() nach if ... else oder vor ? (Würde mal sagen nach dem If...Else...)
Ganz am Anfang des Scripts ?
oder gibt es eine Scriptanweisung ala OnFormLoad() ?
Google hat mir da nicht wirklich weitergeholfen oder ich habe falsch gesucht.
BackGround-Color-Change funktionirt einwandfrei bei Klick auf den entsprechenden Button wenn die Form bereits gestartet ist (z.B. Dienst stoppen färbt die TextBox erfolgreich rot und der Dienststatus wird korrekt angezeigt.
Der derzeitige Status der Dienste wird bereits ganz am Anfang des Script abgefragt und abgelegt :
$Servicepapsftp = 'PAPSFTP'
$Servicewebcron = "PAPWebcron"
$Servicedicomserver = "PAPDicomServer"
$papsftpService = Get-Service -Name $Servicepapsftp
$papwebcronservice = Get-Service -Name $Servicewebcron
$papdicomserverservice = Get-Service -Name $Servicedicomserver
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7393447011
Url: https://administrator.de/forum/powershell-form-beim-starten-direkt-befehl-ausfuehren-7393447011.html
Ausgedruckt am: 22.12.2024 um 08:12 Uhr
4 Kommentare
Neuester Kommentar
Moin,
Gruß Thomas
Zitat von @Crashzero:
Nun ist es so das wenn die Form gestartet wird diese Textbox zwar den Status (Running oder Stopped) korrekt in der TextBox (Enabled = False) anzeigt aber nach dem Start noch kein korrekten BackColor setzt.
Wie kriege ich das hin das bereits beim Start diese Prüfung (Ist das korrekt so ?) ausgeführt und die Textboxen entsprechend gefärbt werden ?
indem du den Code in das Load-Event der Form packst.Nun ist es so das wenn die Form gestartet wird diese Textbox zwar den Status (Running oder Stopped) korrekt in der TextBox (Enabled = False) anzeigt aber nach dem Start noch kein korrekten BackColor setzt.
Wie kriege ich das hin das bereits beim Start diese Prüfung (Ist das korrekt so ?) ausgeführt und die Textboxen entsprechend gefärbt werden ?
$MyForm.Add_Load({
# Hier dein Code zum überprüfen und einfärben.
})
Gruß Thomas