powershell - 在 powershell 中打开一个程序并获取它的句柄
问题描述
我正在尝试制作一个可以打开 Firefox 并获取窗口句柄以供进一步使用的脚本。但我的问题是,打开的浏览器窗口与已经运行的其他窗口具有相同的“标题”,所以我无法通过它过滤句柄列表......有没有办法在启动时“标记”窗口或获取手柄通过其他方式?
解决方案
使用带有switch 参数的Start-Process ,例如. 然后你会得到一些输出,如下所示。-PassThru
Start-Process notepad.exe -PassThru
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
-------- ------ ----- ----- ------ -- -- -----------
236 14 3100 13072 0,03 5004 11 notepad
从链接的 Start-Process 帮助页面:
为 cmdlet 启动的每个进程返回一个进程对象。默认情况下,此 cmdlet 不会生成任何输出。
您可以使用Get-Process组合 Start-Process 以获取MainWindowHandle:
$proc = Start-Process notepad.exe -PassThru
(Get-Process -Id $proc.Id).MainWindowHandle
推荐阅读
- ios - 仅在滚动时,iFrame 中的延迟加载页面在 iOS 设备上(垂直)被切断
- pandas - Pandas:仅将列中的某些字符串大写
- g1ant - 带有参数相对真或相对假的颜色命令输出?
- android - Android Firebase addOnChildListener 致命异常“打印需要消息”并且没有设置器/字段
- python - Python numpy 数组切片不是 Fortran 连续的
- google-apps-script - 当NumberLessThan 无法引用单元格时,Google Apps 脚本条件格式
- macos - mac如何在intellij使用中覆盖fn键?
- javascript - Uncaught Invariant Violation:对象作为 React 子级无效。如果您打算渲染一组孩子,请改用数组
- php - 将json数据作为数组存储在数据库中
- asp.net - 当请求来自加拿大和美国时,ReportViewer 性能下降