【发布时间】:2012-12-06 06:15:37
【问题描述】:
我正在尝试从 c# 代码将浏览器实例作为进程启动。然后我想杀死浏览器的同一个实例。我尝试使用 process id 找到相同的实例。但是任务管理器中的进程ID和我启动进程时得到的初始ID不同。 有什么解决办法?为什么会这样?开发环境是windows 7。
int ID= 0;
void Start()
{
ProcessStartInfo startInfo = new ProcessStartInfo("iexplore.exe");
startInfo.Arguments = "http://www.google.com";
Process ieProcess = Process.Start(startInfo);
ID= ieProcess.Id;
}
void Stop()
{
foreach (Process p in System.Diagnostics.Process.GetProcessesByName("iexplore"))
{
if ((p.Id == ID))
{
p.Kill();
}
}
【问题讨论】:
-
afaik 当您通过此方法启动 Internet Explorer 时,如果已经启动了一个,它将向原始页面发送打开另一个页面消息,以便您启动的进程将打开然后关闭。虽然我可能错了
-
不要这样做。使用自动化界面。然后你可以调用
Quit关闭IE窗口。 -
@user1687824 我已经编辑了我的答案。看看吧。
-
@RaymondChen 你能分享一些链接来展示如何做到这一点吗?会有很大帮助