我想用Visaul C#(VS2005软件带的),也算是C#代码吧,写一个能实现下面功能的程序: 
在打开IE的同时; 或者 IE已经打开,在地址栏里输入网址再按回车后进入其它网址时执行某个.exe程序,当然不是网页带的病,是windows自带的; 
总而言知,就是进入指定网页后执行一个.exe程序,这个程序是windows的一个程序.exe; 
比如说:我正在看别的网页,或没有打开IE看网页,这时,我想每当进入到百度网址后,就执行一个程序(.exe),到其它网址时不执行,(算是一个外挂吧,就是我自己编的一个.exe,当我开机执行后,他就会在后台运行,在这期间,每当我进入到百度网址后,他就会检测到并执行一个windows程序,比如说记事本) 如何实现,本人是新手,请尽量把代码和解释写的详细些,如果您没有时间,请教教我应该如何下手!!

解决方案 »

  1.   

    用vc写一个activex控件安装到浏览器中,可以监视浏览器所做的动作或者用c#调用com组件SHDocVw.dll里面的webBrowser对象,注册安装后应该也可以监视浏览器的动作
      

  2.   

    1. 遍历ShellWindows, 获取你想要的InternetExplorer实例, 通过handle, title等.
    2. 注册它的BeforeNavigate2事件.
    3. 在回调函数中利用Process启动你想要的程序.你MSDN下我标红的几个东西就知道了.
      

  3.   

    "算是一个外挂吧,就是我自己编的一个.exe,当我开机执行后,他就会在后台运行,在这期间,每当我进入到百度网址后,他就会检测到并执行一个windows程序,比如说记事本"楼主说的很清楚了, 他并不是把exe放在服务器, 由客户端下载, 而是自己在本机主动执行. 所以这并不是木马.我给的方法是教他如何挂钩IE浏览器. 至于他是否会做成后台偷偷下载, 看他自己了.楼主新人态度很好, 给你最主干的代码吧, 仅供参考.使用前, 需要引用SHDocVw这个com组件.//获取当前所有浏览器
      protected virtual InternetExplorer[] GetAllBrowsers()
            {
                //get all shell browser.
                SHDocVw.ShellWindows allBrowsers = new ShellWindows();            if (allBrowsers.Count > 0)
                {
                    List<InternetExplorer> ieList = new List<InternetExplorer>(allBrowsers.Count);                InternetExplorer curIE = null;                bool found = false;                for (int i = allBrowsers.Count - 1; i >= 0; i--)
                    {
                        try
                        {
                            curIE = (InternetExplorer)allBrowsers.Item(i);                        //如果不为null, 并且包含HTMLDOM, 则说明是IE.
                            if (curIE != null && curIE.Document is IHTMLDocument)
                            {
                                ieList.Add(curIE);                            found = true;
                            }
                        }
                        catch
                        {
                            continue;
                        }
                    }                if (found)
                    {
                        //返回系统中当前浏览器列表
                        return ieList.ToArray();
                    }
                }            return null;
            }//获取目前最顶层的浏览器, 根据你的需要自己选择使用哪个浏览器.
    InternetExplorer ie=GetAllBrowsers()[0];//注册BeforeNavigate2事件
    ie.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(OnBeforeNavigate2);//回调函数
    protected virtual void OnBeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
            {
    //检查是否为baidu
                if(URL.ToString().IndexOf("baidu.com",StringComparison.CurrentCultureIgnoreCase)>0)
                {
                   //做你想要的事情.
                }
            }
      

  4.   

    太谢谢shrinerain,还是你比较了解我的问题!你的代码我记下了,我会去慢慢试!我看看我有多少分,呵呵~
      

  5.   

    shrinerain的代码我大至看了下,写的很详细明朗,对于我们新手来说真是如鱼得水!
    其实呢,我是一名喜欢制作ASP.net网站的自学新手!一直以来都是用VS2005的C#.net来编写的,对于windows应用程序的开发了以及里面的一些原理了解的少之又少,通过这次学习,我其实是想在我的网站上加一些给用户提供方便功能的一些特殊功能,而这些功能最好来自客户端本身,这样既快又稳定,不需要上我的网里面下载一些东东什么的(可能是病毒噢!呵呵!)
    一会去吃饭啦,晚上开工仔细看shrinerain的代码!