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-Key: 2041147636

Url: https://administrator.de/contentid/2041147636

Printed on: April 26, 2024 at 05:04 o'clock

Mitglied: 1915348599
1915348599 Mar 02, 2022 updated at 11:27:10 (UTC)
Goto Top
Member: Johann.Z
Solution Johann.Z Mar 03, 2022 at 05:57:54 (UTC)
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.
Member: Johann.Z
Johann.Z Mar 03, 2022 at 08:26:03 (UTC)
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