Powershell GUI脚本组合框使用

时间:2015-10-28 12:27:02

标签: user-interface powershell process combobox

我编写了一个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 
}

}

2 个答案:

答案 0 :(得分:1)

您可以使用格式字符串(-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)”不是有效的进程名称,因此您需要先将其拆分以删除进程ID (100),

你可以试试这个

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

然后使用

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

答案 1 :(得分:0)

简单的解决方案:

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