你是想在哪里判断?你的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"
'另外: Dim ie As Object Set ie = CreateObject("internetexplorer.application") ie.Visible = True ie.navigate "http://www.baidu.com"像这种方法启动的话进程后面还是没有参数的。所有只有判断得到它的父进程。所以没有什么100%的方法可以判别出来的。话说楼主你的真正目的是什么呢?
就是想判断这个IE是手动启动的,还是从超链接的,如果是shell ie路径 url,在IE启动之前通过什么方法能截取掉这些东西
从超链接或外部程序启动,一般由外部程序的设计方法决定,比如可以用ShellExecute这个API来直接打开某网页,有些开发工具自己还有打开网页的方法.
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"
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate "http://www.baidu.com"像这种方法启动的话进程后面还是没有参数的。所有只有判断得到它的父进程。所以没有什么100%的方法可以判别出来的。话说楼主你的真正目的是什么呢?
是的,我要在VB程序里判断,我之前考虑过通过判断IEXPLORE.EXE进程来判断,但是如果开了网页再手动点桌面上的IE图标,这样就不对了,因为进程里有IE的进程你刚才说的能看到IE参数的工具有那些,能否告诉我一下,或者VB能得到IE的启动参数吗?
http://download.csdn.net/source/3039852是从卡卡上网安全助手里面取出来的。只有几十k,而且还是绿色的。
http://blog.csdn.net/sysdzw/archive/2009/11/24/4864995.aspx很久以前写的了,不知有没有过有效期。