PowerShell: как проверить, какая кнопка нажата

#powershell #button #user-interface

#powershell #кнопка #пользовательский интерфейс

Вопрос:

У меня есть графический интерфейс с несколькими кнопками для проверки некоторой системной информации. Процедура всегда одна и та же, но я не хочу писать ее 5 раз. Как я могу проверить, какую кнопку нажал пользователь?

Например:

 Foreach ($server in $serverlist) {

   If ( (Test-Connection $server -Quiet -count 1) ) {

      If ($button1.clicked) {

         #Get OS Info

      }

      Else {}

      If ($button2.clicked) {

         #Get Disk Info

      }

      Else {}              


   Else {

      Write-Output "`r`n$server not available...`r`n" | Out-File c:temperror.txt

   }

   }

   Else {}

}

[reflection.assembly]::loadwithpartialname('system.windows.forms'); [system.Windows.Forms.MessageBox]::show('query complete')
  

Ответ №1:

Вместо нескольких if($buttonWhatever.clicked) , прикрепите обработчик событий к самой кнопке и заставьте его выполнять всю работу.

 $btnGetOSInfo.Add_Click(
{
# stuff for getting OS
}
)

$btnGetDiskInfo.Add_Click(
{
# stuff for getting Disk info
}
)