找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13419|回复: 1

[问题求助] PowerShell创建的comobject对象如何通过进程结束

[复制链接]
发表于 2022-11-23 10:19:42 | 显示全部楼层 |阅读模式
我创建了一个ie对象 $ie=new-object -com Internetexplorer.application,由于某些原因,我需要使用结束进程的方法结束这个$ie,而不是用$ie.quit()的方法,我不能用stop-process结束整个iexplore,因为其他打开的ie页面需要保留。我试过通过id和mainwindowtitle来匹配,但mainwindowtitle只能取得ie主窗口的标题。请问有解决方法吗。
发表于 2022-11-24 09:43:58 | 显示全部楼层
本帖最后由 WHY 于 2022-11-24 15:54 编辑

ie对象有一个属性HWND
不过创建的ie对象默认为隐藏窗口,通过Get-Process获取ie对象的MainWindowHandle值为0,是错误的。
https://learn.microsoft.com/zh-c ... ss_MainWindowHandle

如果不想用IE本身的Quit()方法:
1.用Shell.Application
  1. #通过窗口句柄结束进程
  2. $ie = New-Object -Com Internetexplorer.Application;
  3. (New-Object -Com Shell.Application).Windows() | ?{ $_.HWND -eq $ie.HWND } | %{ $_.Quit(); }
复制代码
2.IE显现,再用Stop-Process结束进程
  1. #设置窗口显现
  2. $ie = New-Object -Com Internetexplorer.Application;
  3. $ie.Visible = $true;
  4. Get-Process -Name iexplore | ?{$_.MainWindowHandle -eq $ie.HWND} | Stop-Process
复制代码

评分

参与人数 1技术 +1 收起 理由
Royo + 1 感谢大佬

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:37 , Processed in 0.018107 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表