| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:求助“直接调用GetHandle函数,然后传一个窗口标题进去就可以获得其窗口句柄 ...
只看楼主 加入收藏
dai333ccc
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-12-1
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
求助“直接调用GetHandle函数,然后传一个窗口标题进去就可以获得其窗口句柄了.”
Option Explicit
Private Declare Function GetDesktopWindow Lib "USER32" () As Long
Private Declare Function GetWindow Lib "USER32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "USER32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2

Private Function GetHandle(Title As String) As Long
   Dim tmp As String
   Dim hwnd As Long
   Dim lngProcID As Long
   Dim strTitle As String * 255     '//用来存储窗口的标题
      '//取得桌面窗口
   hwnd = GetDesktopWindow()
   '//取得桌面窗口的第一个子窗口
   hwnd = GetWindow(hwnd, GW_CHILD)
   '//通过循环来枚举所有的窗口
   Do While hwnd <> 0
        '//取得下一个窗口的标题,并写入到列表框中
        GetWindowText hwnd, strTitle, Len(strTitle)
        If Left$(strTitle, 1) <> vbNullChar Then
             tmp = Left$(strTitle, InStr(1, strTitle, vbNullChar))
             If Left(tmp, Len(Title)) = Title Then
                GetHandle = hwnd
             End If
        End If
        '//调用GetWindow函数,来取得下一个窗口
        hwnd = GetWindow(hwnd, GW_HWNDNEXT)
   Loop
End Function

求助;怎么“直接调用GetHandle函数?然后传一个窗口标题进去就可以获得其窗口句柄了.”?
希望各位大大给出调用GetHandle函数的完整代码
我学VB一个多月了,还不太懂这些,求好心人帮忙,我会努力学习的。
2014-12-23 16:53
dai333ccc
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-12-1
收藏
得分:0 
Private Sub Timer1_Timer()
Dim hwnd As Long
hwnd = hwnd(vbNullString, "窗口1")

If hwnd = 0 Then
Label1.Caption = "游戏未运行"
Else
Label1.Caption = "游戏已运行"
End If
End Sub
这是我写的,hwnd = hwnd(vbNullString, "窗口1")可编辑它说缺少数组。。。 我搞很久都不懂
2014-12-23 18:09
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:20 
'你完全不知道程序为何物,居然还调API
Private Sub Timer1_Timer()
Dim hwnd As Long
hwnd = GetHandle("Form1")

If hwnd = 0 Then
Label1.Caption = "游戏未运行"
Else
Label1.Caption = "游戏已运行"
End If

End Sub
2014-12-23 18:52
dai333ccc
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-12-1
收藏
得分:0 
回复 3楼 xzlxzlxzl
版主说的对,我新学,你能介绍点书籍或视频吗? 其实之后我有改成你这样,它返回的有8个数字,明天晚上我有空接着研究
2014-12-23 22:54
快速回复:求助“直接调用GetHandle函数,然后传一个窗口标题进去就可以获得其窗 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014735 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved