Benutzer mit den meisten Antworten
Outputbox - Ausgabe je nach Fall farbig anpassen

Frage
-
Hallo zusammen,
ich versuche mich gerade an meinem ersten Powershell Script und das in einem GUI. Ziel ist es Benutzern das Verbinden von Netzlaufwerken zu erleichtern. Da vorher einige Prüfungen vorgenommen werden, möchte ich gerne je nach Ergebnis der Prüfung die Ausgabe in der Outputbox farbig anpassen.
Beispiel:
Es wird geprüft, ob eine Verbindung zum Internet besteht:(schwarz) erfolgreich (grün) nicht erfolgreich(rot)
Mein Code dazu, sieht wie folgt aus:
#Testen des Internets
$outputbox.Text = "Testen der Internetverbindung: "
if (test-connection -computername $google -count 1 -quiet) {$internet="erfolgreich"} ELSE {$internet="nicht erfolgreich"}
$Outputbox.Text = $outputbox.text + "$Internet";nun müsste $internet je nach Fall farbig angepasst werden, ist dieses Möglich, ich habe leider nichts dazu gefunden.
Danke
Antworten
-
Hallo Milchtrinker!
Zuerst einmal muss ich sagen PowerShell mit GUI zu lernen ist der falsche weg.
PowerShell kann zwar alle Klassen des .NET Framework benutzen und damit auch GUIs erstellen.ABER PowerShell ist für die Konsole und für Remote aufgaben erdacht worden. Also quasi Fensterlos!
Nun ja, man kann auch einen Schraubenzieher zum Dosen öffnen benutzen.....In PowerShell und .NET kommt es immer darauf an das man weiß welches Objekt man vor sich hat.Dein Code Ausschnitt zeigt nicht wie du welche Objekt erstellst / definierst. Das ist wichtig für uns zu wissen!
$Outputbox ist eine System.Windows.Forms.TextBox?
Siehe: http://msdn.microsoft.com/de-de/library/system.windows.forms.textbox.aspxMöchtest du die Vordergrundfarbe (die Schrift) ändern oder die Hintergrundfarbe oder beides?
Wenn man sich die sehr gute Dokumentation der .NET Klassen ansieht kann man mit diesen auch vernünftig arbeiten!
Die Textbox hat die BackColor und die ForeColor Eigenschaft!
Du hast hier im Forum die Möglichkeit Code als Code zu Posten. Nutze das Symbol mit den spitzen Klammern <> dafür !
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)- Bearbeitet Peter Kriegel Montag, 14. Oktober 2013 06:16
- Als Antwort markiert milchtrinker Freitag, 18. Oktober 2013 17:20
-
dies Befehle rufen nur Fehler hervor :x
Das zeigt das dir noch sehr viel Grundlagen wissen fehlt.
PowerShell mit GUI zu lernen ist der falsche weg!
reicht euch das?
#Ausgabefeld$outputBox = New-Object System.Windows.Forms.RichTextBox $outputBox.Location = New-Object System.Drawing.Size(450,100) $outputBox.Size = New-Object System.Drawing.Size(300,200) $outputBox.MultiLine = $True $outputBox.ScrollBars = "Vertical" $objForm.Controls.Add($outputBox)
Ja ! Geht doch! ;-))
Du benutzt also eine RichTextBox.
Einen schon vorhandenen Text von einer RichTextBox einzufärben geht so:
#region Assemblies laden $Null = [reflection.assembly]::loadwithpartialname("System.Windows.Forms") $Null = [reflection.assembly]::loadwithpartialname("System.Drawing") #endregion Assemblies laden #region Form Objekte erstellen $form1 = New-Object System.Windows.Forms.Form $richTextBox1 = New-Object System.Windows.Forms.RichTextBox #endregion Form Objekte erstellen #region Generated Form Code $form1.ClientSize = "284,262" $form1.Name = "form1" $form1.Text = "RichtextBox Demo" $richTextBox1.Location = "12,12" $richTextBox1.Name = "richTextBox1" $richTextBox1.Size = "260,211" $richTextBox1.TabIndex = 0 $form1.Controls.Add($richTextBox1) #endregion Generated Form Code #region RichTextBox Arbeit $richTextBox1.Text = @" Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. The quick brown fox jumps over the lazy dog. Der schnelle braune Fuchs springt über den faulen Hund. Jackdaws love my big sphinx of quartz. Dohlen lieben meine große Sphinx aus Quarz. Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich. Die heiße Zypernsonne quälte Max und Victoria ja böse auf dem Weg zur Küste. Fix Schwyz! quäkt Jürgen blöd vom Paß. "@ # text finden; der Text wird automatisch selektiert $richTextBox1.Find("Xylophonmusik quält jeden größeren Zwerg") $richTextBox1.SelectionColor = [System.Drawing.color]::Gold $richTextBox1.SelectionBackColor = [System.Drawing.color]::Black $richTextBox1.DeselectAll() #endregion RichTextBox Arbeit # Form anzeigen $Null = $form1.ShowDialog()
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)- Bearbeitet Peter Kriegel Donnerstag, 17. Oktober 2013 07:36
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 18. Oktober 2013 13:07
- Als Antwort markiert milchtrinker Freitag, 18. Oktober 2013 15:15
Alle Antworten
-
Hallo Milchtrinker!
Zuerst einmal muss ich sagen PowerShell mit GUI zu lernen ist der falsche weg.
PowerShell kann zwar alle Klassen des .NET Framework benutzen und damit auch GUIs erstellen.ABER PowerShell ist für die Konsole und für Remote aufgaben erdacht worden. Also quasi Fensterlos!
Nun ja, man kann auch einen Schraubenzieher zum Dosen öffnen benutzen.....In PowerShell und .NET kommt es immer darauf an das man weiß welches Objekt man vor sich hat.Dein Code Ausschnitt zeigt nicht wie du welche Objekt erstellst / definierst. Das ist wichtig für uns zu wissen!
$Outputbox ist eine System.Windows.Forms.TextBox?
Siehe: http://msdn.microsoft.com/de-de/library/system.windows.forms.textbox.aspxMöchtest du die Vordergrundfarbe (die Schrift) ändern oder die Hintergrundfarbe oder beides?
Wenn man sich die sehr gute Dokumentation der .NET Klassen ansieht kann man mit diesen auch vernünftig arbeiten!
Die Textbox hat die BackColor und die ForeColor Eigenschaft!
Du hast hier im Forum die Möglichkeit Code als Code zu Posten. Nutze das Symbol mit den spitzen Klammern <> dafür !
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)- Bearbeitet Peter Kriegel Montag, 14. Oktober 2013 06:16
- Als Antwort markiert milchtrinker Freitag, 18. Oktober 2013 17:20
-
Hallo milchtrinker,
brauchst Du eigentlich noch Hilfe?
Gruss,
Alex
Alex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Hallo Alex,
sorry für die späte Rückmeldung, ja bin bisher nicht weiter zu gekommen an dem GUI weiter zu arbeiten. Also ich möchte die Vordergrundfarbe ändern.
Hier mal meine Funktion:
$google = "8.8.8.8" #Testen des Internets $outputbox.Text = "Testen der Internetverbindung: "; if (test-connection -computername $google -count 2 -quiet) {$internet = "erfolgreich"} ELSE {$internet = "nicht erfolgreich"} $Outputbox.Text = $outputbox.text + "$Internet" #Auslesen des Benutzernamens $User = $Inputbox.Text; $outputbox.text = $outputbox.text + "`nBenutzername: dpz\$user `nTeamlaufwerk: $LW"; }
Was ich nun erreichen möchte, dass die Benachrichtigung, ob die Internetverbindung erfolgreich ist oder auch nicht farbig hervorgehoben wird. Der Rest der "Outputbox" soll schwarz wiedergegeben werden. Die Gesamte "Outputbox" farbig anzuzeigen hatte ich geschafft. Also müsste nach meinem Verständnis hier die Farbe angepasst werden:
$Outputbox.Text = $outputbox.text + **Forecolor** "$Internet"
Danke
- Bearbeitet milchtrinker Mittwoch, 16. Oktober 2013 16:43
-
Wie ich oben schon geschrieben habe fehlt die wichtigste Information.
In PowerShell und .NET kommt es immer darauf an das man weiß welches Objekt man vor sich hat.Dein Code Ausschnitt zeigt nicht wie du welche Objekt erstellst / definierst. Das ist wichtig für uns zu wissen!
Von welchem Objekt Typ ist die $outputbox?
Ohne diese Information können wir dir nicht weiterhelfen!
Bitte mach mal folgendes und Poste die Ergebnisse:
$outputbox.GetType() # oder $outputbox | Get-Member
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet) -
dies Befehle rufen nur Fehler hervor :x
reicht euch das?
#Ausgabefeld$outputBox = New-Object System.Windows.Forms.RichTextBox $outputBox.Location = New-Object System.Drawing.Size(450,100) $outputBox.Size = New-Object System.Drawing.Size(300,200) $outputBox.MultiLine = $True $outputBox.ScrollBars = "Vertical" $objForm.Controls.Add($outputBox)
-
dies Befehle rufen nur Fehler hervor :x
Das zeigt das dir noch sehr viel Grundlagen wissen fehlt.
PowerShell mit GUI zu lernen ist der falsche weg!
reicht euch das?
#Ausgabefeld$outputBox = New-Object System.Windows.Forms.RichTextBox $outputBox.Location = New-Object System.Drawing.Size(450,100) $outputBox.Size = New-Object System.Drawing.Size(300,200) $outputBox.MultiLine = $True $outputBox.ScrollBars = "Vertical" $objForm.Controls.Add($outputBox)
Ja ! Geht doch! ;-))
Du benutzt also eine RichTextBox.
Einen schon vorhandenen Text von einer RichTextBox einzufärben geht so:
#region Assemblies laden $Null = [reflection.assembly]::loadwithpartialname("System.Windows.Forms") $Null = [reflection.assembly]::loadwithpartialname("System.Drawing") #endregion Assemblies laden #region Form Objekte erstellen $form1 = New-Object System.Windows.Forms.Form $richTextBox1 = New-Object System.Windows.Forms.RichTextBox #endregion Form Objekte erstellen #region Generated Form Code $form1.ClientSize = "284,262" $form1.Name = "form1" $form1.Text = "RichtextBox Demo" $richTextBox1.Location = "12,12" $richTextBox1.Name = "richTextBox1" $richTextBox1.Size = "260,211" $richTextBox1.TabIndex = 0 $form1.Controls.Add($richTextBox1) #endregion Generated Form Code #region RichTextBox Arbeit $richTextBox1.Text = @" Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. The quick brown fox jumps over the lazy dog. Der schnelle braune Fuchs springt über den faulen Hund. Jackdaws love my big sphinx of quartz. Dohlen lieben meine große Sphinx aus Quarz. Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich. Die heiße Zypernsonne quälte Max und Victoria ja böse auf dem Weg zur Küste. Fix Schwyz! quäkt Jürgen blöd vom Paß. "@ # text finden; der Text wird automatisch selektiert $richTextBox1.Find("Xylophonmusik quält jeden größeren Zwerg") $richTextBox1.SelectionColor = [System.Drawing.color]::Gold $richTextBox1.SelectionBackColor = [System.Drawing.color]::Black $richTextBox1.DeselectAll() #endregion RichTextBox Arbeit # Form anzeigen $Null = $form1.ShowDialog()
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)- Bearbeitet Peter Kriegel Donnerstag, 17. Oktober 2013 07:36
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Freitag, 18. Oktober 2013 13:07
- Als Antwort markiert milchtrinker Freitag, 18. Oktober 2013 15:15