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))")}
我正在编写一个 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))")}