johann.z
Goto Top

PS GUI mit Daten aus dem Script füllen

Hallo zusammen,
wie kann eine geöffnete (ps1 oder als exe. verpackt) GUI Daten von einem ps1 Skript, der per Aufgabenplanung getrigert/ausgeführt wird empfangen?
Idealerweise sollte GUI die Daten mittels synchronisierten Hashtable empfangen.

1. Aufgabenplanung startet PS1. Script
2. Ist die GUI nicht offen, soll diese aufgerufen werden. Fall bereits offen, dann nur Daten empfangen.
3. Script ist durchgelaufen, GUI bleibt offen.
4. Startet der Script erneut, sollen die Daten in der bereits geöffneten GUI zum Vorschein kommen.
Und so weiter, bis die GUI per Flag abgeschaltet wird.

Für einige Vorschläge wäre ich sehr dankbar.

Danke in Voraus

Content-ID: 2041147636

Url: https://administrator.de/forum/ps-gui-mit-daten-aus-dem-script-fuellen-2041147636.html

Ausgedruckt am: 26.03.2025 um 04:03 Uhr

1915348599
1915348599 02.03.2022 aktualisiert um 12:27:10 Uhr
Goto Top
Johann.Z
Lösung Johann.Z 03.03.2022 um 06:57:54 Uhr
Goto Top
Zitat von @1915348599:

z.B. über Named Pipes Kommunikation
System.IO.Pipes.NamedPipeServerStream
System.IO.Pipes.NamedPipeClientStream

Sieht vielversprechend aus, genau das was ich brauche.
Ich versuche es seid gestern, nur leider bisher ohne Erfolg. Irgendwas mache ich falsch, VS bleibt hängen oder stürzt ab.
Johann.Z
Johann.Z 03.03.2022 um 09:26:03 Uhr
Goto Top
Okay, scheint zu klappen, zumindest vorerst.


# Server Code
$pipe = new-object System.IO.Pipes.NamedPipeServerStream 'testpipe','Out'  
$pipe.WaitForConnection()
$sw = new-object System.IO.StreamWriter $pipe
$sw.AutoFlush = $true
$sw.WriteLine("Sende Daten an den Client: Server pid = $pid")  

# $sw.Close()
# $sw.Dispose()
# $pipe.Dispose()


# Client Code
$pipe = new-object System.IO.Pipes.NamedPipeClientStream '.','testpipe','In'  
$pipe.Connect()
$sr = new-object System.IO.StreamReader $pipe
while (($data = $sr.ReadLine()) -ne $null) { "Übertrage Input: $data" }  

# $sr.Dispose()
# $pipe.Dispose()

Ich werde das alles noch testen, entsprechend in die SubThreads verlagern/verbauen, damit weder die GUI noch Skript gestört werden und schauen, ob es geklappt hat.

Besten Dank für den Hinweis