首页
社区
课程
招聘
[旧帖] [求助]vb findwindow怎么会出现这种结果? 0.00雪花
发表于: 2010-10-16 23:37 1159

[旧帖] [求助]vb findwindow怎么会出现这种结果? 0.00雪花

2010-10-16 23:37
1159
看了一个VB API的应用,原文中的程序是
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Form_Load()
Dim hwnd As
Long' 储存 FindWindow 函数返回的句柄
hwnd = FindWindow(vbNullString, 计算器)' 取得进程标识符
If hwnd = 0 Then
Label1.Caption = "程序未运行"
Else
Label1.Caption = "程序已运行"
End If
End Sub
我把hwnd改成了a,但由于一时手误,if语句中的没改,如下
Private Sub Form_Load()
Dim a As Long
a = FindWindow(vbNullString, "计算器")
If hwnd = 0 Then
Label1.Caption = "程序未运行"
Else
Label1.Caption = "程序已运行"
End If
End Sub
结果不管计算器开没开,都是“程序已运行”,后来我又把if语句中的hwnd换成了b,结果老是“程序未运行”,与预期一样,为什么换成hwnd就会出错呢?是不是hwnd还有什么特殊意义?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 7067
活跃值: (4005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
估计是你这个VB程序的主窗口标题叫"计算器"吧...
2010-10-17 09:55
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我对VC语言研究不够深刻 楼主如果用易语言的话 这个原因我倒是知道
2010-10-22 09:20
0
雪    币: 334
活跃值: (70)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
这里的hWnd其实就是Me.hWnd,省略了Me就让我们摸不着头脑了。
2010-10-22 10:57
0
游客
登录 | 注册 方可回帖
返回
//