主要是CREATESTRUCT这个类,感觉从指针lparam里得到的数据不正确,貌似是类定义错了?Public Type CREATESTRUCT
lpCreateParams As Long
hInstance As Long
hMenu As Long
hWndParent As Long
cy As Long
cx As Long
Y As Long
X As Long
Style As Long
lpszName As Long
lpszClass As Long
ExStyle As Long
End Type
'上面是定义的CREATESTRUCT类
Public Function WindowProc(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim WinInfo As CREATESTRUCT
Select Case Code
Case 3
CopyMemory WinInfo, ByVal lParam, Len(WinInfo)
WinInfo.Style = WinInfo.Style And (Not &H10000000) CopyMemory ByVal lParam, WinInfo, Len(WinInfo) Debug.Print WinInfo.cx, WinInfo.cy, WinInfo.X, WinInfo.Y, Hex(wParam) '这里是显示窗口的创建大小以及坐标,但是显示的结果明显没对,wininfo.cy的值相当大,有几万,wininfo.x,wininfo.y的结果也不正确,都和实际不符
End Select
WindowProc = CallNextHookEx(lHook, Code, wParam, lParam)
End Function我的意思是想让这个窗口在启动时就是不可见的,但是我在上文中去掉了ws_visible风格也不行,请教我出错在哪里谢谢
lpCreateParams As Long
hInstance As Long
hMenu As Long
hWndParent As Long
cy As Long
cx As Long
Y As Long
X As Long
Style As Long
lpszName As Long
lpszClass As Long
ExStyle As Long
End Type
'上面是定义的CREATESTRUCT类
Public Function WindowProc(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim WinInfo As CREATESTRUCT
Select Case Code
Case 3
CopyMemory WinInfo, ByVal lParam, Len(WinInfo)
WinInfo.Style = WinInfo.Style And (Not &H10000000) CopyMemory ByVal lParam, WinInfo, Len(WinInfo) Debug.Print WinInfo.cx, WinInfo.cy, WinInfo.X, WinInfo.Y, Hex(wParam) '这里是显示窗口的创建大小以及坐标,但是显示的结果明显没对,wininfo.cy的值相当大,有几万,wininfo.x,wininfo.y的结果也不正确,都和实际不符
End Select
WindowProc = CallNextHookEx(lHook, Code, wParam, lParam)
End Function我的意思是想让这个窗口在启动时就是不可见的,但是我在上文中去掉了ws_visible风格也不行,请教我出错在哪里谢谢
不知道在“之后”,你再找个机会让它隐藏行不? ^_^
因此你的HOOK方法,可能无法达到你的目的。
还不如让它那个窗口启动后,再使它不可见好解决点。