为包含多个功能的 Powershell 脚本创建 GUI 前端的最佳方法是什么 - 即 GUI 中的按钮将调用所述功能并最终输出一些输出。
3 回答
Sapien 的PowerShell Studio 2012有一个内置的 GUI 设计器,但它相当昂贵。
CodePlex 上还有ShowUI 模块,它是免费的,WPK 也是免费的——它是PowerShellPack的一部分。
所有这些工具都很棒,PowerShell 是一种很棒的语言,但是如果你真的需要为你的脚本提供一个图形用户界面,你或许应该质疑你是否真的在编写程序。如果您实际上是在编写程序,那么使用像 C# 这样的语言可能是一个更好的决定。
如果您想要一个带有 UI 的脚本示例,您可以查看我一年前写的Convert-WindowsImage 。将 Convert-WindowsImage 编写为 C# 程序会容易得多,但我认为展示 PowerShell 的功能更有趣。
希望有帮助。
我使用两种解决方案(很好地隐藏在网络上但仍然存在)来解决您的问题:
首先,您可以使用Sapiens PrimalForms 社区版(它是免费的,您只需登录 Sapiens 并下载)。此框架允许您以图形方式构建您的 DialogBox,然后生成 Windows 窗体的 PowerShell 代码(仍然可用,如图所示下面)。
其次,您有一个名为PowerShell Form Converter的脚本,由 Arnaud Petitjean (11-05-2007) 编写。再次您必须注册,这篇文章是用法语写的,但您可以下载一个 Powershell 脚本,将 Windows 窗体从 .CS 文件转换为 PS1。就像在 Sapiens 编辑器中一样,转换被注释(这里是法语)以及编码事件的地方。
您可以使用 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