我试图通过powershell从win10中打开的窗口中获取“真实”标题。 当我尝试通过:
Get-Process | Select MainWindowTitle,ProcessName,Id | where{$_.MainWindowTitle -ne ""}
我得到两次“LabVIEW”作为标题,而在实际窗口中提到“PTC05_Driver.lvproj - Project Explorer”
知道如何得到这个“
PTC05_Driver.lvproj - Project Explorer
”吗LabVIEW
过程是什么?
简短版本 - 您无法使用主窗口,因此您需要枚举所有窗口。请参阅示例此处,您可以将最后一行的过滤器修改为
| Where-Object { $_.WinTitle -like "*lvproj*"}| Where-Object { $_.WinTitle -like "*Project Explorer*"} |
这不是保证,但这可能是您能得到的最好的。请注意,这仍然会返回所有打开的项目窗口,以及标题中恰好有“lvproj”和“Project Explorer”的任何其他窗口。
更长的版本 - 项目窗口不是“真实的窗口”。这只是一扇窗户。 LabVIEW 可以打开多个项目窗口。我希望您看到的“LabVIEW”窗口是主窗口(在 LV 中称为根窗口),它处理根循环、发送到 LV 的窗口消息和其他内容。有时可以借助 INI 键在任务栏中看到这一点,但我认为窗口本身是不可见的。
尽管如此,我认为没有一种简单的方法可以可靠地找到项目窗口。他们的类是 LVDChild,就像其他 LV 窗口一样,甚至在 VI 服务器 API 中我也不知道有什么东西可以为您提供项目窗口本身的列表。正如我上面所示,按标题过滤可能已经足够好了,尽管如果您有其他标题中带有“lvproj”的窗口,它也可能会中断。