VB窗口句柄遍历代码问题
下面的代码是我抄别人```
不知道怎么把得到的句柄放到变量里
运行它``它会弹出句柄````
怎么才能把得到的句柄放到我HUND里啊
Option Explicit
Dim HUND //这是我自己加上去的代码
Private Sub Command1_Click()
Dim Tmp As Long
SendMessageCallback -1, 15, 0, 0, AddressOf SednAsyncProc, Tmp
我想在这里弹出“刀剑”的窗口```可是没句柄
End Sub
下面是模块的代码
Option Explicit
Public Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallbackA" (ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal lpResultCallBack As Long, ByVal dwData As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Function SednAsyncProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal dwData As Long, ByVal lResult As Long) As Long
Dim szTitalBuffer As String * 1024
Dim sf As String * 254
GetWindowText hWnd, szTitalBuffer, 1024
If InStr(szTitalBuffer, "刀剑") <> 0 Then MsgBox hWnd
End Function
怎么实现?知道的说一下``
VB我本人没基础
因为按键精灵被屏遮了```才想学VB```
[解决办法]
If InStr(szTitalBuffer, "刀剑") <> 0 Then HUND=hWnd
[解决办法]
"因为按键精灵被屏遮了```才想学VB```"
如果按鍵精灵都被屏蔽了,就说明 刀剑 做了特殊处理,HOOK了系统的API,发现谁在枚举自己的窗口句柄就返回0.
你使用VB也是一样获取不到的.
这个需要进一步了解API才行,了解其屏蔽使用的手段,然后反屏蔽.
这个不是开始学VB的人能办到的.
[解决办法]
我测试了下,看样子可能是楼上说的那样被屏蔽了
[解决办法]
要不你打开一个"记事本"程序测试,如果同时找得到"记事本"确找不到"刀剑",那就说明不是你这段代码本身有问题,而是被屏蔽或其它原因啊
[解决办法]
给你一个微软封装好的: FindWindowLike
http://support.microsoft.com/kb/147659
直接查找出所有类似于"刀剑"的窗口.
如果查找不到,就说明刀剑做了限制.