WINDOWS自带的IE浏览器的运行机制是怎样的   问题一,手动运行系统自带桌面上的IE图标启动IE和点击超链接启动IE,这两种启动方式有什么区别   问题二,如果想判断IE是用户手动双击桌面图标启动的还是点击带http超链接而启动的,应该从那方面做手去处理。

解决方案 »

  1.   

    手动运行桌面上的ie图标就是直接启动ie进程,父进程应该就是桌面。点击超链接(从哪里?外部应用程序里还是就是浏览器的网页里?),如果是外部应用程序的话应该就是类似于“shell ie路径 + url参数”启动的,如果是网页中的话也差不多。
      

  2.   

    超链接的有在访问IE时的超链接,也有在读类似WORD文档里的超链接,也有例如QQ群里发的那些网站的超链接。
    就是想判断这个IE是手动启动的,还是从超链接的,如果是shell ie路径 url,在IE启动之前通过什么方法能截取掉这些东西
      

  3.   

    从桌面上启动,没有传进参数,至于它启动后显示什么,那要看你所使用的浏览器的功能.
    从超链接或外部程序启动,一般由外部程序的设计方法决定,比如可以用ShellExecute这个API来直接打开某网页,有些开发工具自己还有打开网页的方法.
      

  4.   

    你是想在哪里判断?你的vb程序里?只有截获了,不断监视是否有新进程启动,然后查看它的启动参数。话说点桌面上图标打开的默认是首页,ie启动时先判断有没有参数,如果没有参数则读取自身的配置,例如设置了首页则打开首页。这时你通过一些工具去查看它的进程会发现后面还是没有参数的。 一般的如果在应用程序里打开都会调用iexplore.exe 跟个参数。这时用工具去查看会发现进程后面有一串参数。vb中打开网页的几种方法:
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub Command1_Click()
    '    Shell "rundll32.exe url.dll,FileProtocolHandler http://www.baidu.com" '方法1
    '    Shell "cmd.exe /c start http://www.baidu.com", 0 '方法2
    '    Shell "explorer.exe http://www.baidu.com", 1 '方法3
        ShellExecute hwnd, "open", "http://www.baidu.com", "", "", 1 '方法4
        ShellExecute 0, "open", "IEXPLORE.EXE", "http://www.baidu.com", "", 1 '方法5
    End Sub
    '另外:
    Dim ie As Object
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    ie.navigate "http://www.baidu.com"
      

  5.   

    '另外:
    Dim ie As Object
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    ie.navigate "http://www.baidu.com"像这种方法启动的话进程后面还是没有参数的。所有只有判断得到它的父进程。所以没有什么100%的方法可以判别出来的。话说楼主你的真正目的是什么呢?
      

  6.   


    是的,我要在VB程序里判断,我之前考虑过通过判断IEXPLORE.EXE进程来判断,但是如果开了网页再手动点桌面上的IE图标,这样就不对了,因为进程里有IE的进程你刚才说的能看到IE参数的工具有那些,能否告诉我一下,或者VB能得到IE的启动参数吗?
      

  7.   

    上传了。
    http://download.csdn.net/source/3039852是从卡卡上网安全助手里面取出来的。只有几十k,而且还是绿色的。
      

  8.   

    vb得到进程的启动参数参考文章:
    http://blog.csdn.net/sysdzw/archive/2009/11/24/4864995.aspx很久以前写的了,不知有没有过有效期。
      

  9.   

    是的,从桌面直接启动默认是不带的。BTW结贴吧。