一个IE进程会杀死所有IE进程

时间:2014-09-09 11:21:57

标签: vb.net internet-explorer process

我正在 VB.net 中开发服务。问题是如果超过1个IE窗口正在运行,每当我结束一个iexplorer进程时它就不会关闭相应的IE窗口。即如果4个窗口正在运行,我尝试结束3个进程(在第一个进程后到达),它们一个接一个地关闭但是当我结束那个特定进程(首先到达)时,它以某种方式保持所有进程所有Internet Explorer都关闭。

我想要做的是我想要IE进程的命令行args,我得到了第一个IE的args,但之后我得到了这个:  "C:\Program Files (x86)\Internet Explorer\iexplore.exe" "http://ksnap.bpweb.com/webtop/drl/versionLabel/CURRENT"

多数民众赞成我想要的但是当第二个IE进程到来时我得到了这个: "C:\Program Files (x86)\Internet Explorer\iexplore.exe" SCODEF:424 CREDAT:79874"

对于所有下一个到达的IE进程,我得到了args:即。 SCODEF:xxxx CREDAT:xxxx (xxxx代表数字)

1 个答案:

答案 0 :(得分:0)

我不认为你应该通过杀死进程来做到这一点。您应该使用Internet Explorer自动化。

在c#中:

using SHDocVw;
using mshtml;

   private static IEnumerable<InternetExplorer> GetInternetExplorers()
   {
      ShellWindows shellWindows = new ShellWindowsClass();
      List<InternetExplorer> allExplorers = shellWindows.Cast<InternetExplorer>().ToList();
      IEnumerable<InternetExplorer> internetExplorers = allExplorers.Where( ie => Path.GetFileNameWithoutExtension( ie.FullName ).ToLower() == "iexplore" );
      return internetExplorers;
   }

参考文献:

MSHTML - Microsoft HTML Object Library
Interop.SHDocVw.dll - Microsoft Internet Controls

再看一下,你应该能够找到并关闭打开的标签。