Попытка создать графический интерфейс PowerShell для установки принтера - PullRequest
0 голосов
/ 27 июня 2019

У меня есть сценарий powershell, который я собрал, чтобы предоставить графический интерфейс для установки принтера. Кажется, у меня проблема с передачей переменных из текстовых полей на экране в функции «Добавить принтер» и привязкой их к кнопке.

Я попробовал несколько комбинаций функций Set и = функции, чтобы попытаться соединить различные переменные, но безуспешно. Я также не вижу ошибок, поскольку при загрузке графического интерфейса не отображаются сообщения об ошибках.

Add-Type -assembly System.Windows.Forms
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text ='Printer Installation'
$main_form.Width = 600
$main_form.Height = 400
$main_form.AutoSize = $true
$Label = New-Object System.Windows.Forms.Label
$Label.Text = "What is the Printer IP Address?"
$Label.Location  = New-Object System.Drawing.Point(0,10)
$Label.AutoSize = $true
$PrinterIPGUI = New-Object System.Windows.Forms.TextBox
$PrinterIPGUI.Location = New-Object System.Drawing.Point(200,10)
$PrinterIPGUI.AutoSize = $true
$Label2 = New-Object System.Windows.Forms.Label
$Label2.Text = "What do you want to name the printer?"
$Label2.Location  = New-Object System.Drawing.Point(0,40)
$Label2.AutoSize = $true
$PrinterNameGUI = New-Object System.Windows.Forms.TextBox
$PrinterNameGUI.Location = New-Object System.Drawing.Point(200,40)
$PrinterNameGUI.AutoSize = $true
$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(0,60)
$Button.Size = New-Object System.Drawing.Size(120,23)
$Button.Text = "Run"
$main_form.Controls.Add($Label2)
$main_form.Controls.Add($PrinterNameGUI)
$main_form.Controls.Add($PrinterIPGUI)
$main_form.Controls.Add($Button)
$main_form.Controls.Add($Label)
$main_form.ShowDialog()

function Set-ActionOnClick{

add-printerport -name $PrinterIPGUI -printerhostaddress $PrinterIPGUI
add-printer -name $PrinterNameGUI -drivername "HP Universal Printing PCL     
6 (v6.7.0)" -port $PrinterIPGUI

}


$Button.Add_Click(

{

Set-ActionOnClick

}

)

Я ожидаю, что проблема связана с 2 вещами:

  1. Объекты, созданные для ввода текста, не могут соотноситься со значениями, введенными в текстовые поля.

  2. Из-за этого функция не может интерпретировать значения, введенные в графическом интерфейсе

Очевидно, что нет никаких ошибок, которые возникают из-за GUI, существующего вне powershell, после его запуска.

1 Ответ

0 голосов
/ 28 июня 2019

Неважно, я подошел к этому под функциональным подходом, а затем просто передал переменные для этих полей, и это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...