Benutzer mit den meisten Antworten
Nachrichtenfenster ausgeben aber nicht warten

Frage
-
Hallo,
wie kann ich eine Nachricht ausgeben ohne auf ein "OK" klick zu warten?
Ich möchte den Benutzer über ein anstehendes Event (Neustart) informieren ohne das das ausgeführte Script stehen bleibt.
Ein weiteres Script PS Script zu starten wäre eine Möglichkeit, aber vielleicht gibt es noch etwas besseres?
[System.Windows.Forms.MessageBox]::Show("Noch 3 Std. bis zum Neustart","Neustartmeldung",0)
Liebe Grüße
Norbert
IT Berater
Antworten
-
Am einfachsten ist wohl die gute alte MSG.exe
Aber es spricht auch nichts dagegen, einfach eine neue Powershell-Instanz zu starten:
$NewPS = [PowerShell]::Create().AddScript({ [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") [System.Windows.Forms.MessageBox]::Show("Noch 3 Std. bis zum Neustart","Neustartmeldung",0) }) [Void]$NewPS.BeginInvoke()
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Donnerstag, 24. August 2017 22:02
- Als Antwort vorgeschlagen BOfH-666 Donnerstag, 24. August 2017 22:03
- Als Antwort markiert NBC2009 Freitag, 25. August 2017 05:22
Alle Antworten
-
... ich weiß, 's is auch wieder Gefrickel und es hat auch eigentlich nix mit Powershell zu tun, aber manchmal hat man eben keinen Kreuzschlitzschraubendreher zur Hand und haut die Schraube mit'm Hammer ins Brett. ;-) :-D
Du kannst mit AutoIt oder Autohotkey eine MessageBox als ausführbares, kompiliertes Script erzeugen, welches Du dann von Powershell aus mit Start-Prozess starten kannst.
In AutoHotkey würde Deine MessageBox von oben so aussehen:
MsgBox , 0, Neustartmeldung, Noch 3 Stunden bis zum Neustart
Kompiliert zu einer Datei "MsgBox.exe" kannst Du sie dann so starten:
Start-Process -FilePath '<Pfad>\MsgBox.exe'
... ohne den Paramter -Wait wird der Process gestartet, ohne das seine Beendigung abgewartet wird und das Script läuft quasi asynchron weiter.
Nicht unerwähnt lassen möchte ich, dass ein kompiliertes AutoHotkey-Script ca 200 kb groß ist - nicht viel, aber manchen stört's.
Grüße - Best regards
PS:> (79,108,97,102|%{[char]$_})-join'' -
Am einfachsten ist wohl die gute alte MSG.exe
Aber es spricht auch nichts dagegen, einfach eine neue Powershell-Instanz zu starten:
$NewPS = [PowerShell]::Create().AddScript({ [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") [System.Windows.Forms.MessageBox]::Show("Noch 3 Std. bis zum Neustart","Neustartmeldung",0) }) [Void]$NewPS.BeginInvoke()
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Donnerstag, 24. August 2017 22:02
- Als Antwort vorgeschlagen BOfH-666 Donnerstag, 24. August 2017 22:03
- Als Antwort markiert NBC2009 Freitag, 25. August 2017 05:22