2013-07-24 3 views
3

Каков наилучший способ создания GUI-интерфейса для скрипта Powershell, который содержит несколько функций - например, кнопки в графическом интерфейсе, которые будут вызывать указанные функции и вывести некоторые выходные данные в конце.Создайте GUI-интерфейс для Powershell

ответ

5

PowerShell Studio 2012 от Sapien имеет встроенный графический дизайнер, но это довольно дорого.

Существует также ShowUI module на CodePlex, который является бесплатным, также как и WPK, который является частью PowerShellPack.

Все эти инструменты великолепны, и PowerShell - это потрясающий язык, но если вам действительно нужен графический интерфейс для вашего скрипта, вам, возможно, стоит задать вопрос, вместо этого вы на самом деле пишете программу. Если вы на самом деле пишете программу, использование языка, такого как C#, может быть лучшим решением.

Если вам нужен пример скрипта с пользовательским интерфейсом, вы можете проверить Convert-WindowsImage, который я написал год назад. Было бы намного проще написать Convert-WindowsImage как программу на C#, но я решил, что было бы интереснее продемонстрировать, что может сделать PowerShell.

Надеюсь, что это поможет.

3

I стали использовать два решения (хорошо скрытые в Интернете, но все еще существует), чтобы решить вашу проблему:

Первый, Вы можете использовать Sapiens PrimalForms Community Edition (Это бесплатно, вы просто должны подписать Sapiens и перейти к download). Этот фреймворк позволяет графически создавать ваш DialogBox, а затем генерирует код PowerShell для Windows Forms (все еще доступен, как показано ниже).

enter image description here

Второй у вас есть сценарий под названием PowerShell Form Converter прописан Арно Petitjean (11.05.2007). Еще раз вам нужно зарегистрироваться, статья написана на французском, но вы можете скачать сценарий Powershell, который преобразует Windows Form из файла .CS в PS1. Как и в редакторе Sapiens, преобразование комментируется (здесь на французском) с местом для кодовых событий.

2

У вас есть полный доступ к библиотекам .NET с помощью PowerShell. Я использовал 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' –

Смежные вопросы