Powershell GUI: Powershell Console in GUI einbinden und als Ausgabefenster (richTextBox) nutzen?
Hallo liebe Community,
ich möchte gerne eine PS Console in meine GUI einbinden und als Ausgabefenster nutzen. (siehe Bilder)
Mein Tool funktioniert schon sehr gut, nur möchte ich es anders lösen.
Ist das möglich und wie kann ich das realisieren? Kann mir hier vllt jemand helfen?
Vielen Dank im voraus
Vorher:
Nachher:
ich möchte gerne eine PS Console in meine GUI einbinden und als Ausgabefenster nutzen. (siehe Bilder)
Mein Tool funktioniert schon sehr gut, nur möchte ich es anders lösen.
Ist das möglich und wie kann ich das realisieren? Kann mir hier vllt jemand helfen?
Vielen Dank im voraus
Vorher:
Nachher:
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 389931
Url: https://administrator.de/contentid/389931
Ausgedruckt am: 25.11.2024 um 02:11 Uhr
11 Kommentare
Neuester Kommentar
So einfach ist es eben nicht. Wenn du nur Ausgabe haben willst, die aussieht wie die PS Console dann konfiguriere deine Textbox einfach so, dass es so aussieht als ob ...
Wenn du allerdings die Funktionalität einer PS Console haben willst, brauchst du natürlich auch Powershell als interpretierenden Prozess. Das heißt, du hängst nicht nur einfach ein Consolefenster ein, sondern einen kompletten fremden powershell.exe Prozess. Könnte ich dir in C und Windows API ggf. noch vorturnen, von Windows Forms hab ich aber überhaupt keine Ahnung.
Steffen
Wenn du allerdings die Funktionalität einer PS Console haben willst, brauchst du natürlich auch Powershell als interpretierenden Prozess. Das heißt, du hängst nicht nur einfach ein Consolefenster ein, sondern einen kompletten fremden powershell.exe Prozess. Könnte ich dir in C und Windows API ggf. noch vorturnen, von Windows Forms hab ich aber überhaupt keine Ahnung.
Steffen
Ich fürchte das unterschätzt du ein wenig. Dort hab ich mal vorgeturnt, wie das mit einem eingebetteten Windows Editor aussehen würde:
https://www.coding-board.de/threads/button-zum-verschieben-des-fensters- ...
Und ob/wie man das einbinden könnte weiß ich überhaupt nicht. Hab mich nicht ansatzweise mit Forms beschäftigt.
Aber mal ehrlich, irgendwie rennst du da in eine Richtung die ... ähm ... wie soll ich sagen ... etwas unkonventionell ist.
Steffen
https://www.coding-board.de/threads/button-zum-verschieben-des-fensters- ...
Und ob/wie man das einbinden könnte weiß ich überhaupt nicht. Hab mich nicht ansatzweise mit Forms beschäftigt.
Aber mal ehrlich, irgendwie rennst du da in eine Richtung die ... ähm ... wie soll ich sagen ... etwas unkonventionell ist.
- Nutze Scriptsprachen als Script und nicht in irgendeiner GUI. Das passt nicht. Und mit Console schon gleich gar nicht. Oder
- baue das Verhalten der von dir verwendeten Kommandos programmatisch nach. Dann brauchst du den ganzen Quatsch nicht. Oder ...
- führe das entsprechende Kommando in einem Prozess aus, deren Ausgabe du mit einer Pipe abfängst. Wieder keine Ahnung, wie das mit Forms funktionieren könnte.
Steffen
Das ließe sich schon machen indem man einem Console-Window als Parent die Form bzw. ein Control zum Parent des Console-Windows macht.
Aber mach dir doch einfach eine Textbox für die Befehlseingabe und eine für die Ausgabe dann machst du bei Drücken von Enter in der einen Textbox einen neuen unsichtbaren CMD Prozess (ShellExecute = False) dessert StdOut- und StdErr-Stream du ausliest und in die Ausgabetextbox ausgibst, das ist schnell gescriptet denn das kann das Process-Object ja schon von Haus aus.
Wenn man will kann man es auch mit etwas mehr Aufwand auch in nur einer Textbox machen.
Für interaktive Befehle wie Diskpart und Co. muss man dann natürlich mehr Aufwand betreiben.
Gruß l.
Aber mach dir doch einfach eine Textbox für die Befehlseingabe und eine für die Ausgabe dann machst du bei Drücken von Enter in der einen Textbox einen neuen unsichtbaren CMD Prozess (ShellExecute = False) dessert StdOut- und StdErr-Stream du ausliest und in die Ausgabetextbox ausgibst, das ist schnell gescriptet denn das kann das Process-Object ja schon von Haus aus.
Wenn man will kann man es auch mit etwas mehr Aufwand auch in nur einer Textbox machen.
Für interaktive Befehle wie Diskpart und Co. muss man dann natürlich mehr Aufwand betreiben.
Gruß l.