为Powershell创建GUI前端

时间:2013-07-24 17:55:18

标签: .net powershell user-interface

为包含多个功能的Powershell脚本创建GUI前端的最佳方法是什么 - 即GUI中的按钮将调用所述函数并最终喷出一些输出。

3 个答案:

答案 0 :(得分:5)

来自Sapien的

PowerShell Studio 2012有一个内置的GUI设计师,但它相当昂贵。

CodePlex上的ShowUI module也是免费的,WPK是免费的,它是PowerShellPack的一部分。

所有这些工具都很棒,PowerShell是一种很棒的语言,但是如果你真的需要为你的脚本提供一个图形用户界面,你或许应该质疑你是否真的在编写一个程序。如果您实际上正在编写程序,那么使用像C#这样的语言可能是一个更好的决定。

如果您想要一个带有UI的脚本示例,您可以查看我在大约一年前写过的Convert-WindowsImage。将Convert-WindowsImage编写为C#程序要容易得多,但我认为展示PowerShell可以做什么更有趣。

希望有所帮助。

答案 1 :(得分:3)

我使用两种解决方案(很好地隐藏在网络上但仍然存在)来解决您的问题:

首先,你可以使用Sapiens PrimalForms Community Edition(它是免费的,你只需要签名给Sapiens然后去下载)。这个Framwork允许你在图形上构建你的DialogBox然后它会生成适用于Windows窗体的PowerShell代码(仍然可用,如下所示)。

enter image description here

第二次你有一个名为PowerShell Form Converter的脚本,由Arnaud Petitjean撰写(11-05-2007)。您必须再次注册,该文章是用法语写的,但您可以下载一个Powershell脚本,将Windows窗体从.CS文件转换为PS1。就像在Sapiens编辑器中一样,转换被注释(这里是法语)和编码事件的地方。

答案 2 :(得分: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