小弟遇到一个棘手问题:
“IE窗口的句柄  不等于  IE窗口里面的页面的句柄, 如何后台找IE窗口里头的页面的句柄!!!”我用鼠标将“IE窗口”和“IE窗口里头的页面”反复获取了N次句柄,每次都不一样, 看来两个句柄应该是不一样的。
但, 小弟在编写控制网页脚本的时候必须用到页面的句柄, 但我从现有的API函数中怎么也找不到后台获取页面的句柄函数, 所以我每次运行脚本之前都必须将鼠标移动到页面上来获取页面句柄, 真是好麻烦, 代码如下:
hwnd=Window.MousePoint()后来我发现FindEx函数可以通过类来查找, 我用鼠标取得IE窗口里头的页面的类确定每次都是Internet Explorer_Server  代码如下:
hwnd=Window.MousePoint()
winclass=Window.GetClass(hwnd)
wintxt=Window.Gettext(hwnd)
inputbox "句柄:" & hwnd, "标题:" & wintxt,winclass确定了这个类过后, 我想就应该能用FindEx找到我IE窗口里头的页面的句柄了吧, 因为我已经找到他的类了, 于是我用下面的代码找“页面的句柄”:
//下面hwnd是IE这个父窗口的句柄, 0我也试过,都不行!
subhwnd=Window.FindEx(hwnd,0,"Internet Explorer_Server",0)
可惜结果令我很失望, 找到的句柄永远是0, 也就是没找到, 不知道哪里出了问题, 恳请高手指点迷津, 谢谢!我只想:如何后台直接获取指定标题的IE窗口里头的某个框架中的“页面的句柄”, 叩首感谢!

解决方案 »

  1.   

    不敢担当这样感谢。
    简单提一下吧,WIN SHELL OBJECT,有COM组件。
      

  2.   

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Sub Command1_Click()
      Handle = FindWindow("IEFrame", vbNullString)      'IE句炳API
       If Handle <> 0 Then
       MsgBox "你的IE已经打开"
       Else
       MsgBox "你的IE没有打开"
       End If
    End Sub
        
      

  3.   

    不是每个网页元素都有句柄的。就像标准控件中label是没有句柄的一样。很多应用就只是遍历网页元素就可以了。
      

  4.   

    vb.net中可以使用webbrowser类来操作网页中的各种元素
      

  5.   

    select *from code where state='1'