MoritzJ 0 Geschrieben 15. Juli 2022 Melden Teilen Geschrieben 15. Juli 2022 Moin, ich versuche gerade mich ein wenig in das Thema Powershell einzuarbeiten da ich einige repetitive Aufgaben habe die ich gut so abbilden kann. Hierzu wollte ich mir ein GUI basteln und im Powershell ISE wird das ganze auch korrekt angezeigt. Wenn ich das Script allerdings mit "Rechtsklick "Run with Powershell" starte ist das Menu weg, habe keine Ahnung wieso. Mein Grundscript besteht aus 4 Dateien (bin für eine grundlegende Trennung von Sachen aber vielleicht ist genau das mein Problem) die wie folgt aussehen: main.ps1 (mit dem Starte ich alles) Add-Type -assembly System.Windows.Forms # Import GUI settings . $PSScriptRoot\gui_settings.ps1 # Import GUI menu . $PSScriptRoot\gui_menu.ps1 # Import GUI specific functions . $PSScriptRoot\gui_functions.ps1 # Load form $main_form.ShowDialog() gui_settings.ps1 $gui_settings_title ='GUI for Teamcenter / NX / General Administration' $gui_settings_Width = 1200 $gui_settings_Height = 800 $gui_settings_AutoSize = $false $gui_settings_Icon = "$PSScriptRoot\images\netfol.ico" #$gui_settings_Logo = "$PSScriptRoot\images\logo.jpg" #$img = [System.Drawing.Image]::Fromfile($gui_settings_Logo); # DO NOT CHANGE ANYTHING BELOW THIS LINE $main_form = New-Object System.Windows.Forms.Form $objIcon = New-Object system.drawing.icon ($gui_settings_Icon) $statusbar = New-Object System.Windows.Forms.StatusBar #$pictureBox = new-object Windows.Forms.PictureBox #$pictureBox.Location = New-Object System.Drawing.Size(900,150) #$pictureBox.Size = New-Object System.Drawing.Size($img.Width,$img.Height) #$pictureBox.Image = $img $main_form.StartPosition = "CenterScreen" $main_form.Text = $gui_settings_title $main_form.Width = $gui_settings_Width $main_form.Height = $gui_settings_Height $main_form.AutoSize = $gui_settings_AutoSize $main_form.MainMenuStrip = $menuMain $main_form.Controls.Add($menuMain) $main_form.Icon = $objIcon $main_form.BackColor = "white" #logo # status bar $statusbar.Name = "statusBar" $statusbar.Text = "Ready" # add controls [void]$main_Form.Controls.Add($menuMain) [void]$main_Form.Controls.Add($statusbar) #[void]$main_Form.Controls.Add($pictureBox) gui_menu.ps1 # Define menu objects $menuMain = New-Object System.Windows.Forms.MenuStrip $mainToolStrip = New-Object System.Windows.Forms.ToolStrip $menuFile = New-Object System.Windows.Forms.ToolStripMenuItem $menuOpen = New-Object System.Windows.Forms.ToolStripMenuItem $menuSave = New-Object System.Windows.Forms.ToolStripMenuItem $menuExit = New-Object System.Windows.Forms.ToolStripMenuItem $menuHelp = New-Object System.Windows.Forms.ToolStripMenuItem $menuAbout = New-Object System.Windows.Forms.ToolStripMenuItem $toolStripOpen = New-Object System.Windows.Forms.ToolStripButton $toolStripSave = New-Object System.Windows.Forms.ToolStripButton $toolStripExit = New-Object System.Windows.Forms.ToolStripButton $toolStripAbout = New-Object System.Windows.Forms.ToolStripButton # Menu: File $menuFile.Text = "File" [void]$menuMain.Items.Add($menuFile) # Menu: File -> Open $menuOpen.Text = "Open" $menuOpen.Add_Click({OpenFile}) [void]$menuFile.DropDownItems.Add($menuOpen) # Menu: File -> Save $menuSave.Text = "Save" $menuSave.Add_Click({SaveFile}) [void]$menuFile.DropDownItems.Add($menuSave) # Menu: File -> Exit $menuExit.Text = "Exit" $menuExit.Add_Click({$main_Form.Close()}) [void]$menuFile.DropDownItems.Add($menuExit) # Menu: Help $menuHelp.Text = "Help" [void]$menuMain.Items.Add($menuHelp) # Menu: Help -> About $menuAbout.Text = "About" $menuAbout.Add_Click({ShowAbout}) [void]$menuHelp.DropDownItems.Add($menuAbout) gui_functions.ps1 function ShowAbout { [void] [System.Windows.MessageBox]::Show( "This is just for testing purpose only! DON'T USE IT IN A LIVE ENVIRONMENT!" ) } Vielleicht kann mich jemand erleuchten, vielen Dank im Vorraus :) Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 15. Juli 2022 Melden Teilen Geschrieben 15. Juli 2022 Willkommen im MCSEboard. vor einer Stunde schrieb MoritzJ: ich versuche gerade mich ein wenig in das Thema Powershell einzuarbeiten da ich einige repetitive Aufgaben habe die ich gut so abbilden kann. vor einer Stunde schrieb MoritzJ: Vielleicht kann mich jemand erleuchten, vielen Dank im Vorraus :) Die Antwort mag bei Deiner gestellten Frage ketzerisch klingeln, aber wenn es Dir um Automatisierung geht - lass die GUI weg. Zitieren Link zu diesem Kommentar
MoritzJ 0 Geschrieben 18. Juli 2022 Autor Melden Teilen Geschrieben 18. Juli 2022 Habe es mir auch lange überlegt und wenn man ehrlich ist braucht man das wirklich nicht (für meine Zwecke) aber ich nehme es als generelles Powershell Learning Thema auf :) Habe mittlerweile eine Lösung gefunden, muss die aber noch austesten. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 18. Juli 2022 Melden Teilen Geschrieben 18. Juli 2022 vor 9 Stunden schrieb MoritzJ: Habe mittlerweile eine Lösung gefunden, muss die aber noch austesten. Die darfst Du uns dann gerne mitteilen, Danke. ;) Zitieren Link zu diesem Kommentar
Gast010 2 Geschrieben 7. September 2022 Melden Teilen Geschrieben 7. September 2022 ne GUI per PS ist ne feine Sache, nur das dann als EXE umwandeln mit iexpress... da funktioniert das auch nicht wirklich - leider. Auch schon ausprobiert und dran rumgebastelt. Also an ner GUI für PS... Zitieren Link zu diesem Kommentar
mwiederkehr 382 Geschrieben 7. September 2022 Melden Teilen Geschrieben 7. September 2022 Die PowerShell ist für Scripts gedacht und das Einbinden von Winforms ist ein Gebastel aus meiner Sicht. Visual Studio ist kostenlos, damit kann man komfortabel GUIs designen, Windows Forms oder sogar WPF (wobei das die Komplexität erhöht) und wenn man die Anwendung für .NET Framework 4.x kompiliert, läuft sie auf jedem einigermassen modernen Windows ohne zusätzliche Komponenten. C# ist nicht so schwer zu erlernen, zumindest nicht für einfachere Sachen. 1 Zitieren Link zu diesem Kommentar
Gast010 2 Geschrieben 7. September 2022 Melden Teilen Geschrieben 7. September 2022 Wäre in meinem Job dann doch nur "eye candy", also was ne GUI angeht, ist aber dennoch interessant, das in PS hinzubekommen und man lernt dabei doch noch ne ziemliche Ecke. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.