首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

FindWindowEX无法正确获取子窗口的句杯,该怎么处理

2012-04-02 
FindWindowEX无法正确获取子窗口的句杯以下是vb .net 的代码:VB.NET codePublic Class Form1Private Decla

FindWindowEX无法正确获取子窗口的句杯
以下是vb .net 的代码:

VB.NET code
Public Class Form1    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer    Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim lngHwnd As Long        Dim lngCHwnd As Long        lngHwnd = FindWindow(vbNullString, "Browser")        lngCHwnd = FindWindowEx(lngHwnd, 0, "Internet Explorer_Server", vbNullString)        Debug.WriteLine(lngHwnd & "---" & lngCHwnd)    End SubEnd Class


运行结果是:
657122---8976488743927416536

前面657122是Browser.exe 的句柄, 这个是正确的, 但是用 FindWindowEX 查找子窗口的句柄得到的是一串很多的数字8976488743927416536, 为什么会这样?


[解决办法]
VB code
lngHwnd = FindWindow(vbNullString, "Browser")lngCHwnd = FindWindowEx(lngHwnd, 0,vbNullString,"Internet Explorer_Server")
[解决办法]
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

不知道,红色部分的声明,在。net里面怎么规定的,看着不一样,是不是,long被升级成64位了?

热点排行