为包含多个功能的Powershell脚本创建GUI前端的最佳方法是什么 - 即GUI中的按钮将调用所述函数并最终喷出一些输出。
答案 0 :(得分:5)
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代码(仍然可用,如下所示)。
第二次你有一个名为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