当前位置:编程学习 > VB >>

VB 接上一个问题,调用IE命令问题!


现在转到VB代码了,但是出现错误! 请高手指正 谢谢!
错误在红字部分,因为出错,没有调试成功过,后续应该还有些问题。

'常数声明
Const ID_IE_FILE_PAGESETUP = 259
Const ID_IE_FILE_PRINT = 260
Const ID_IE_FILE_NEWWINDOW = 275
Const ID_IE_FILE_PRINTPREVIEW = 277
Const ID_IE_FILE_NEWMAIL = 279
Const ID_IE_FILE_SENDPAGE = 282
Const ID_IE_FILE_SENDLINK = 283
Const ID_IE_FILE_SENDDESKTOPSHORTCUT = 284
Const ID_IE_HELP_VERSIONINFO = 336
Const ID_IE_HELP_HELPINDEX = 337
Const ID_IE_HELP_WEBTUTORIAL = 338
Const ID_IE_HELP_FREESTUFF = 341
Const ID_IE_HELP_PRODUCTUPDATE = 342
Const ID_IE_HELP_FAQ = 343
Const ID_IE_HELP_ONLINESUPPORT = 344
Const ID_IE_HELP_FEEDBACK = 345
Const ID_IE_HELP_BESTPAGE = 346
Const ID_IE_HELP_SEARCHWEB = 347
Const ID_IE_HELP_MSHOME = 348
Const ID_IE_HELP_VISITINTERNET = 349
Const ID_IE_HELP_STARTPAGE = 350
Const ID_IE_HELP_NETSCAPEUSER = 351
Const ID_IE_FILE_IMPORTEXPORT = 374
Const ID_IE_HELP_ENHANCEDSECURITY = 375
Const ID_IE_FILE_ADDTRUST = 376
Const ID_IE_FILE_ADDLOCAL = 377
Const ID_IE_FILE_NEWPUBLISHINFO = 387
Const ID_IE_FILE_NEWPEOPLE = 390
Const ID_IE_FILE_NEWCALL = 395
'对常数声明
'命令句柄ID,是来自 'Internet Explorer_Server
Const ID_IE_CONTEXTMENU_NEWWINDOW = 2137
Const ID_IE_CONTEXTMENU_ADDFAV = 2261
Const ID_IE_CONTEXTMENU_REFRESH = 6042
'声明API函数
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Function GetIEHandle(Web As Control, ClassName As String) As Long
Dim hwndChild As Long, hwndTmp As Long
Dim oleCtrl As Control
Dim szClass As String
szClass = Space(255)
   hwndTmp = Web.Handle ' 这里提示出错 “实时错误 438,对象不支持该属性或方法”
   hwndChild = GetWindow(hwndTmp, GW_CHILD)
   Do While hwndChild <> 0
        
        GetClassName hwndChild, szClass, Len(szClass)
        If Str(szClass) = ClassName Then ’这里类型不匹配
           GetIEHandle = hwndChild
           Exit Do
        End If
        hwndChild = GetWindow(hwndTmp, GW_CHILD)
   Loop 
End Function
Private Sub Command1_Click()

 
   SendMessage GetIEHandle(Web, "Internet Explorer_Server"), WM_COMMAND, ID_IE_CONTEXTMENU_ADDFAV, 0
End Sub
Private Sub Command2_Click()

   SendMessage GetIEHandle(Web, "Shell DocObject View"), WM_COMMAND, ID_IE_FILE_IMPORTEXPORT, 0
End Sub
Private Sub Form_load()
   Web.Navigate "http://www.baidu.com"
End Sub
--------------------编程问答-------------------- VB 高手都去给苍井空还原马赛克了 。。。。~~~~没空理我。。。
--------------------编程问答-------------------- 我觉得你应该把Web定义为明确的类型,比如IHTMLDocument什么的吧?
还有就是先判断一下Web的值,如果是Nothing,应该抛出错误.
补充:VB ,  网络编程
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,