3

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

4

3 回答 3

5

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

CodePlex 上还有ShowUI 模块,它是免费的,WPK 也是免费的——它是PowerShellPack的一部分。

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

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

希望有帮助。

于 2013-07-24T18:57:18.060 回答
3

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

首先,您可以使用Sapiens PrimalForms 社区版(它是免费的,您只需登录 Sapiens 并下载)。此框架允许您以图形方式构建您的 DialogBox,然后生成 Windows 窗体的 PowerShell 代码(仍然可用,如图所示下面)。

在此处输入图像描述

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

于 2013-07-24T19:30:40.393 回答
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
于 2013-07-25T15:07:40.470 回答