Проблема в том, что параметр Param (...) блок должен быть самым первым в файле скрипта. Итак:
- я не могу разместить Add-Type в качестве первой строки файла.
- i попробовал использовать сборку system.windows.forms, но выдает ошибку: невозможно загрузить сборку "System.Windows.Forms". Я думаю, что это возможно, если явно указать путь к файлу dll, но это некрасиво и не зависит от устройства.
messagebox.ps1
Код: Выделить всё
# Add-Type -AssemblyName system.windows.forms # DOESN'T WORK, can't be placed before Param()
# using assembly System.Windows.Forms # DOESN'T WORK, can't find the assembly to load
Param(
[string] $Text = '',
[string] $Caption = '',
[System.Windows.Forms.MessageBoxButtons] $Buttons = [System.Windows.Forms.MessageBoxButtons]::OK # REPORTS: Unable to find type [System.Windows.Forms.MessageBoxButtons].
)
[System.Windows.Forms.MessageBox]::Show($Text, $Caption, $Buttons)
Похожий вопрос (о пользовательском типе, а не о тип системы):
Скрипт Powershell Для проверки блока параметров требуется тип, определенный в другом скрипте
Подробнее здесь: https://stackoverflow.com/questions/757 ... ell-script
Мобильная версия