Powershell Pop-Up Message

Ich verstehe die Frage nicht ganz. Also die letzte Zeile 5000 = 5000 ms = 5 Sekunden?
Was hast du alles eingestellt?
 
Genau 5 Sekunden

Der Rest war quasie als Baustein schon gegeben musste nur noch meinen "Text" einfügen aber egal ob nun 5000ms oder 15000ms dort stehen, die Benachrichtigung von Windows geht nach 5 Sekunden ca weg.

Diese hätte ich halt gerne dauerhaft bis man OK klickt
 
Und noch schlimmer: Wer sich auf "nicht stören" stellt, bekommt glaub gar keine Benachrichtigung...

Wie lange soll die Benachrichtung da sein? -> Bin man klickt?
Sind Benachrichtigungen überhaupt das richtige für dich? -> Wohl kaum...

Hast du dir mal AutoIT angeschaut? Ich schätze nein.

Hier mal eine Funktion, die für dich hilfreich sein könnte:
https://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm

Und aus dem Ding kann man eine EXE bauen, die sich dann via Aufgabenplanung starten lässt.

@einfachpeer: Wenn es so einfach geht, dann mach es doch für den TE und gib ihm den richtigen Code.
Wobei die erste Frage wäre erst mal: Weiß der TE überhaupt, was er genau will...
 
  • Gefällt mir
Reaktionen: pcBauer
Unstoppabl3 schrieb:
Genau 5 Sekunden

Der Rest war quasie als Baustein schon gegeben musste nur noch meinen "Text" einfügen aber egal ob nun 5000ms oder 15000ms dort stehen, die Benachrichtigung von Windows geht nach 5 Sekunden ca weg.

Diese hätte ich halt gerne dauerhaft bis man OK klickt

Laut Doku ist der TImeout heutzutage Irrelevant:
https://learn.microsoft.com/de-de/d...fyicon.showballoontip?view=windowsdesktop-8.0

Parameter​

timeout Int32
Gibt an, wie viele Millisekunden die SprechblasenInfo angezeigt wird. Dieser Parameter ist veraltet. Die Anzeigezeiten von Benachrichtigungen basieren nun auf den Einstellungen für Barrierefreiheit des Systems.

Geht also eh nach Systemeinstellung des Benutzers, daher ist dieser balloontip wohl nicht die gewünschte Technik, und wie erwähnt kann das "nicht stören" das eh unterbinden, ebenfalls etwas worauf du hier kein Einfluss hast.
 
  • Gefällt mir
Reaktionen: tollertyp
Und hast du damit schon erfolgreich eine Meldung erzeugt?

Finde die Anleitung ist da etwas übersichtlicher... https://www.itnator.net/messagebox-mit-powershell-realisieren/
aber selbst mit dem [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") funktioniert das bei mir nicht.

1704815834646.png
 
Ja, sonst haett ich es nicht gepostet:
1704816081931.png

Ich frag mich dann, ob das damit zu tun hat das ich Visual Studio auf dem Rechner habe. Evtl. hat das was mitinstalliert?
EDIT: Nevermind, geht nur in der ISE, in einer normal gestarteten Powershell will es nicht.
 
  • Gefällt mir
Reaktionen: Unstoppabl3 und tollertyp
@Drexel: Stimmt, damit geht es bei mir auch in der Powershell:


Code:
PS U:\> Add-Type -A System.Windows.Forms
>> [System.Windows.Forms.MessageBox]::Show("Test", "Fenstertitel",[System.Windows.Forms.MessageBoxButtons]::OK)
OK
PS U:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.3803
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.3803
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
 
function Show-PopupMessage {
$message = "Achtung `n`nBitte die Stückzahlen in die Leistungsermittlung eintragen `nund Kühlemulsion in die Maschinen füllen !"
$title = "Erinnerung für Abteilung Pb 02"
$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageIcon = [System.Windows.MessageBoxImage]::Warning
[System.Windows.MessageBox]::Show($message, $title, $ButtonType, $MessageIcon)
}
 
@einfachpeer:
Bitte wenigstens Code-Tags verwenden.

Mein Problem dabei jemandem einfach ein fertiges Script for die Fuesse zu werfen, ist, dass das irgendwo dem "Geist des Forums" wiederspricht.
Hier im Programmierbereich, und in den meisten anderen Programmierforen in denen ich in der Vergangenheit unterwegs war, wird eine gewisses Eigenleistung der Hilfesuchenden eingefordert.
Das ist ja auch einer der Hintergruende fuer die "Keine Hausaufgaben" Klausel hier im Bereich.
Simple (um nicht fast zu sagen stupide) Anfragen wo nur die Aufgabe gepostet wird, mit einem unausgesprochenen "Gib mir den Code", wo null komma null Eigenleistung zu erkennen ist, werden zu Recht schnell zugemacht.
Wenn jemand eine konkrete Anfrage zu einem konkreten Problem mit Codebeispielen postet, bleibt das hier dagegen oft stehen, auch wenn dem Fragesteller rausrutscht, dass das eine Hausaufgabe ist.

Die Fragenstellenden, wenn denn Lernwilligkeit erkennbar ist, Schritt fuer Schritt an die Loesung heranzufuehren ist doch letztendlich etwas wo wir (als Community) zumindest zur Zeit noch, besser sind als die ganzen KIs. Wenn dann einfach fertige Scripte gepostet werden, kann man auch gleich direkt auf ChatGPT verweisen.
Da fand ich zB die Threads von @Nichael-E sehr erfrischend und wuerde mir von anderen Anfragern eine aehnliche Herangehensweise wuenschen :D
 
  • Gefällt mir
Reaktionen: Michael-D
Drexel schrieb:
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") hat bei mir in der .ps1-Datei nicht funktioniert irgendwie.
Ich teste evtl heute Abend noch das AddType.

Edit: Sehe gerade, dass der TE das AddType bei sich auch drin hatte in #20.

Edit2: Habe die ps-Datei falsch getestet. Geht auhc mit dem Ausdruck, den ich da geschrieben habe.
 
Zuletzt bearbeitet:
Danke erst mal für die große Hilfe,

ich habe es nun soweit geschafft, dass alles bis auf eine Kleinigkeit läuft.
Ich habe vorher die
Code:
function Show-PopupMessage

verwendet, diese hat aber leider nicht funktioniert, da ein

Code:
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show

gefehlt hat.

nun habe ich diesen fehler hier!

Fehler!



Ich muss die function Show-PopupMessage ersetzen.

Hat da jemand einen Tipp für mich?
 
Unstoppabl3 schrieb:
Hat da jemand einen Tipp für mich?
ja, füge die von @einfachpeer ein

Dein Fehler sagt ja das du eine Funktion aufrufen willst die noch gar nicht existiert.
du musst sie nur hinzufügen
PowerShell:
function Show-PopupMessage (){
#dein Code, der ganze Frums aus Zeile 2+3 müsste reichen
}
 
@sikarr

Das ist richtig, die Funktion hatte ich ja vorher drinnen, da hab ich dann aber andere Fehlermeldungen bekommen weil ihm das gefehlt hat

Code:
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show

wenn ich das aber benutze kann ich ja keine funktion Popupmessage mehr nutzen.
verstehst du was mein Problem ist?
 
Unstoppabl3 schrieb:
wenn ich das aber benutze kann ich ja keine funktion Popupmessage mehr nutzen.
verstehst du was mein Problem ist?
Nein, wieso kannst du die dann nichtmehr nutzen?

Dein Script fängt so an
PowerShell:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

function Show-PopupMessage(){
     $message = "Achtung `n`nBitte die Stückzahlen in die Leistungsermittlung eintragen `nund Kühlemulsion in die 
     Maschinen füllen !"
     $title = "Erinnerung für Abteilung Pb 02"
     
     [System.Windows.Forms.MessageBox]::Show($message,$title,0)
}

# und später dann einfach
Show-PopupMessage
Du musst Funktionen erstmal definieren bevor du sie aufrufen kannst, was nicht da ist kann auch nicht ausgeführt werden.
 
Zuletzt bearbeitet: (so müsste es gehen)
Zurück
Oben