Wieso funktionier bei mir [System.Windows.MessageBox]::Show($DropDown)::OK in PowerShell nicht??

1 Antwort

Ich erspare es mir mich durch einen Wust von Fehlermeldungen zu hangeln.

Ich habe keien Ahnung warum Du etwas schreibst und nicht weist wie es funktioniert.

Ok Du hast es nicht geschrieben, sondern irgendeine Uraltquelle kopiert. ([System.Reflection.Assembly]::LoadWithPartialName() ist sowas von veraltet..🤮)

In Anbetracht dessen, das Du der Messagebox ein vorgegebene Position/Größe/etc aufs Auge drücken willst, musst Du dich nicht wundern, wenn Powershell garnicht aus dem Rot herauskommt. Zur Formatierung der Messagebox habe ich ja bereits etwas geschrieben https://www.gutefrage.net/frage/powershell-pop-up-fenstergroesse-aendern#answer-384540309

Anwendung von Messagebox:

Add-Type -a PresentationFramework


$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageIcon = [System.Windows.MessageBoxImage]::Asterisk
$MessageBody = "Das ist eine Nachricht`r`n...mit erzwungenem Zeielnvorschub`r`n...und  noch eienem"
$MessageTitle = "Mitteilung"
$Result = [System.Windows.MessageBox]::Show($MessageBody,$MessageTitle,$ButtonType,$MessageIcon)
$Result

Messagebox wird in mehreren Instanzen vererbt. ergo macht es keinen großen Unterschied welches Assembly du verwendest. System.Windows.Forms definiert jedoch nicht die Variable .MessageBoxImage .

Gewöhnlich begnügt man sich ohnehin mit den direkten Aufruf von ::Show() ohne Vorgeplänkel und der Übergabe der numerischen Werte für die Buttonconfig und Icon ,usw.

dann genügt es sich einfach mit Forms als Assembly zu begnügen...

Add-Type -AssemblyName System.Windows.Forms

[System.Windows.Forms.MessageBox]::Show("Hallo ich bin eine Nachricht","Titel",0,64)

Keien Ahnung was Du vorhast... gewöhnlich sollte man jedoch erstmal die Grundlagen von Powershell und .Net beherrschen, bevor man sich auf die freihändige Definition von Fensterelementen stürzt.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren