无法从 LabVIEW 进程获取 Powershell 中的“真实”MainWindowTitle

问题描述 投票:0回答:1

我试图通过powershell从win10中打开的窗口中获取“真实”标题。 当我尝试通过:

 Get-Process | Select MainWindowTitle,ProcessName,Id | where{$_.MainWindowTitle -ne ""}

我得到两次“LabVIEW”作为标题,而在实际窗口中提到“PTC05_Driver.lvproj - Project Explorer”

知道如何得到这个“

PTC05_Driver.lvproj - Project Explorer
”吗
LabVIEW
过程是什么?

powershell labview
1个回答
2
投票

简短版本 - 您无法使用主窗口,因此您需要枚举所有窗口。请参阅示例此处,您可以将最后一行的过滤器修改为

| Where-Object { $_.WinTitle -like "*lvproj*"}| Where-Object { $_.WinTitle -like "*Project Explorer*"} |

这不是保证,但这可能是您能得到的最好的。请注意,这仍然会返回所有打开的项目窗口,以及标题中恰好有“lvproj”和“Project Explorer”的任何其他窗口。

更长的版本 - 项目窗口不是“真实的窗口”。这只是一扇窗户。 LabVIEW 可以打开多个项目窗口。我希望您看到的“LabVIEW”窗口是主窗口(在 LV 中称为根窗口),它处理根循环、发送到 LV 的窗口消息和其他内容。有时可以借助 INI 键在任务栏中看到这一点,但我认为窗口本身是不可见的。

尽管如此,我认为没有一种简单的方法可以可靠地找到项目窗口。他们的类是 LVDChild,就像其他 LV 窗口一样,甚至在 VI 服务器 API 中我也不知道有什么东西可以为您提供项目窗口本身的列表。正如我上面所示,按标题过滤可能已经足够好了,尽管如果您有其他标题中带有“lvproj”的窗口,它也可能会中断。

© www.soinside.com 2019 - 2024. All rights reserved.