首页 新闻 搜索 专区 学院

如何用C#关闭指定页面

0
悬赏园豆:5 [已关闭问题] 关闭于 2013-10-31 10:06

前提:手工打开2,3个页面,如何让程序打开一个网页,然后关掉自己打开的那个页面?手工打开的页面不关。

以下是我写的代码,不起作用。

 1 using System;
 2 using System.Diagnostics;
 3 using System.Threading;
 4 
 5 namespace Process_Sample
 6 {
 7     class MyProcessClass
 8     {
 9         public static void Main()
10         {
11             Process pr = Process.Start("IExplore.exe");
12             int pid = pr.Id;
13             Console.WriteLine("代码创建:" + pid.ToString());
14             Thread.Sleep(3000);
15             Process[] pp = Process.GetProcessesByName("iexplore");
16             for (int i = 0; i < pp.Length; i++)
17             {
18                 Console.WriteLine("手工打开:" + pp[i].Id);
19                 if (pp[i].Id == pid)
20                 {
21                     pr.Kill();
22                 }
23             }
24             Console.ReadKey();
25         }
26     }
27 }
c#
beyondchina的主页 beyondchina | 小虾三级 | 园豆:680
提问于:2013-10-30 17:32
< >
分享
所有回答(2)
0

首先。如果用户选择的是新标签页中打开。如果采用关闭进程的方式。那么。整个进程都会关闭。所以。不建议使用启动IExplore.exe 。可以自己简单的浏览器。winform中有这个控件。这样就能控制浏览器的地址。就能采用地址来关闭当前浏览器窗口了。《个人思路》

青牛客 | 园豆:562 (小虾三级) | 2013-10-30 17:46

我要的是不用控件,不用第三方,比如WebDriver,就纯粹用C#,不知有办法没?

支持(0) 反对(0) beyondchina | 园豆:680 (小虾三级) | 2013-10-30 17:49
0

不知道怎么弄的,如果开始没有打开的"iexplore",还能关闭页面,如果已经有的“iexplore”,用 string pname = pr.ProcessName;得 时候,发现进程已经关闭了。以后也获得不到该进程。即便是ProcessStartInfo processinfo = new ProcessStartInfo("IExplore.exe", "http://www.baidu.com/s?wd=%E9%BB%84%E9%87%91&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=1&rsv_sug=0&rsv_sug1=1&rsv_sug4=141&inputT=10406&my=my");
             Process[] pp = Process.GetProcessesByName("iexplore");
             pp[0].StartInfo = processinfo;
             pp[0].Start();
             string pname = pp[0].ProcessName;

方式打开的网页,进程也会在Start后关闭的。

贪心狸猫 | 园豆:872 (小虾三级) | 2013-10-30 20:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册