我正在 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代表数字)
答案 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
再看一下,你应该能够找到并关闭打开的标签。