2013-07-24 55 views
3

爲Powershell腳本創建包含多個功能的GUI前端的最佳方式是什麼?即GUI中將調用所述函數並在最後輸出一些輸出的按鈕。爲Powershell創建GUI前端

回答

5

PowerShell Studio 2012來自Sapien有一個內置的GUI設計器,但它相當昂貴。

還有CodePlex上的ShowUI module,它是免費的,WPK也是如此,它是PowerShellPack的一部分。

所有這些工具都非常棒,PowerShell是一種非常棒的語言,但是如果您確實需要爲您的腳本提供圖形用戶界面,那麼您應該可能會懷疑是否實際上正在編寫程序。如果你真的在編寫程序,使用C#這樣的語言可能會是一個更好的決定。

如果你想要一個帶有UI的腳本的例子,你可以看看我寫了大約一年前的Convert-WindowsImage。將Convert-WindowsImage編寫成C#程序會容易得多,但我決定展示PowerShell可以做什麼更有趣。

希望有所幫助。

3

工字鋼使用兩種解決方案(以及隱藏在網絡上,但仍然存在)來解決問題:

首先,您可以使用Sapiens PrimalForms Community Edition(它是免費的,你只需要登錄到智人去下載)。這個Framwork允許你建立你的DialogBox,然後它生成Windows Forms的PowerShell代碼(如下圖所示仍然可用)。

enter image description here

你已經有了一個叫PowerShell Form Converter腳本由Arnaud珀蒂讓(11-05-2007)writen。再次註冊,文章用法文寫,但是您可以下載將Windows窗體從.CS文件轉換爲PS1的Powershell腳本。就像在Sapiens的編輯中一樣,這個轉換在這裏以法語的形式進行了評論,並提供了編碼事件的地方。

2

您可以使用PowerShell完全訪問.NET庫。我之前使用Visual Studio使用Winforms拼湊了一個對話框,然後將其生成的代碼複製並粘貼到我的PowerShell腳本中。

像...

function createGUI{ 
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
    ... 
    $main_form = New-Object System.Windows.Forms.Form 
    $button_OK = New-Object System.Windows.Forms.Button 
    .... 
    $main_form.ShowDialog() 
} 

createGUI 
+0

爲什麼使用反射在這裏?對不起,如果問題沒有意義,我只是不明白你調用'System.Reflection.Assembly'的第二行代碼 –