Board logo

标题: [问题求助] PowerShell创建的comobject对象如何通过进程结束 [打印本页]

作者: Royo    时间: 2022-11-23 10:19     标题: PowerShell创建的comobject对象如何通过进程结束

我创建了一个ie对象 $ie=new-object -com Internetexplorer.application,由于某些原因,我需要使用结束进程的方法结束这个$ie,而不是用$ie.quit()的方法,我不能用stop-process结束整个iexplore,因为其他打开的ie页面需要保留。我试过通过id和mainwindowtitle来匹配,但mainwindowtitle只能取得ie主窗口的标题。请问有解决方法吗。
作者: WHY    时间: 2022-11-24 09:43

本帖最后由 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
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2