Powershell GUI 脚本组合框的使用

Powershell GUI script combobox usage

我正在编写一个 Powershell GUI 脚本,它使用组合框显示系统上所有进程名称的列表 运行。

我想在括号中显示进程名称和进程 ID。 即

Internet explorer (4)
Chrome (100)
Skype (33)

这是我得到的代码。到目前为止我只能显示进程名称,我也不知道如何显示进程 ID,有什么建议吗?

$MainForm_Load={
#TODO: Initialize Form Controls here
$processes = Get-Process
foreach ($process in $processes)
{
    Load-ComboBox $combobox1 $process.ProcessName  -Append 
}

}

您可以使用格式字符串 (-f)

$MainForm_Load={
#TODO: Initialize Form Controls here
$processes = Get-Process
foreach ($process in $processes)
{
$CurrentProcess = "{0} ({1})" -f $process.Name,$process.id   
Load-ComboBox $combobox1 $CurrentProcess -Append 
}

关于您的评论问题,

首先它应该是:get-process $combobox1.selecteditem.text 但它仍然无法工作,因为例如名称 "Chrome (100)" 不是有效的进程名称,因此您需要先将其拆分以删除进程编号 (100),

你可以试试这个

$ProcessName = ($combobox1.selecteditem.text) -replace "\(.*\)" 

然后使用

$textbox1.text = (get-process $ProcessName) | Out-String

简单的解决方案:

get-process | %{$combobox.items.add("$($_.name)($($_.id))")}