51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1893|回复: 4
打印 上一主题 下一主题

[原创] 无法得到窗口的句柄

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-28 15:27:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的代码可以用来判断记事本窗口是否可见,如果可见的话,出力出口为“OK”,否则“NG”
可是我的问题是,如果在程序执行的时候记事本没有打开的情况下,
var_GetROProperty = Window("Notepad").GetROProperty("hwnd")
这句话就会报错,也就无法得到窗口的句柄了,也就无法判断这个窗口是否可见
大家有没有好的办法啊

Extern.Declare micHwnd,"IsWindowVisible","user32.dll" , "IsWindowVisible" ,micHwnd
var_GetROProperty = Window("Notepad").GetROProperty("hwnd")

If Extern.IsWindowVisible(var_GetROProperty) Then
         msgbox "is ok"
         else
         msgbox "NG"
End If
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-10-28 15:31:28 | 只看该作者
我有个方法就是用代码打开“Task Manager”
用循环在里面查找有没有Notepad.exe
判断1:如果没有的话,就启动一个新的进程,继续作下面的操作
判断2:如果存在的情况下,继续作下面的操作

这样做是可以实现的,但是我觉得笨笨的,肯定还有别的办法的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-10-28 15:40:42 | 只看该作者
Extern.Declare micHwnd,"IsWindowVisible","user32.dll" , "IsWindowVisible" ,micHwnd
if Window("Notepad").exist(2) then
var_GetROProperty = Window("Notepad").GetROProperty("hwnd")

If Extern.IsWindowVisible(var_GetROProperty) Then
         msgbox "is ok"
         else
         msgbox "NG"
End If

End if

这样可以吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-10-28 16:07:05 | 只看该作者
Dim boolFlag
strComputer = "."

Set wbemServices = GetObject("winmgmts:\\" & strComputer )

Set wbemObjectSet = wbemServices.InstancesOf("Win32_Process")

For Each process In wbemObjectSet
        If InStr(1, process.Name, "notepad.exe", vbTextCompare) <> 0 Then
                MsgBox "is ok"
                boolFlag = True
                Exit For
        End If
Next

If Not(boolFlag) Then
        MsgBox "NG"
End If
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-10-28 16:08:21 | 只看该作者
晕,哪个给我弄的头像。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 16:39 , Processed in 0.066169 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表