高手过来:如何判断某个窗体的enable状态???
大家讨论比较多的是对某个控件如checkbox、pushbutton的enable的获取,但是如何获取某个窗体的enablde好像还没有人提到。因为在很多数据库程序中,一个界面的打开到可以响应用户的消息需要几秒的延迟,而到底延时多少和要获取的数据量有关,这就提出一个问题,如何能获取窗体的Enable的状态,等检测到enablde才进行下一步的界面操作。否则只能用delayfor来一个很长的演示,这样做效率太低了。我尝试着这样写脚本:Window SetContext, "Caption=MSTP通用查询", ""
Result = SQAGetProperty("type=Window;Caption=MSTP通用查询","Enabled",i)
If Result = 0 then
If i = -1 then
Msgbox("Enable")
Else
Msgbox("Disabled")
End if
Else
Msgbox(Cstr(Result))
Msgbox("fail")
End if
脚本运行报错,错误码是1003,是sqaObjectNotFound。我知道肯定是SQAGetProperty语句有问题,但是不知道怎么才正确。请高手们赐教。。。感谢 改用window验证点呢? enableb 换成其他的关键字看看 用SQAWaitForPropertyValue应该可以吧 Sub main
Dim i
Dim Result
Dim Result1
Dim Result2
'''Window SetContext,"Type=Window;Caption=无标题 - 记事本" ,"1"
Result = SQAFindObject("Type=Window;Caption=无标题 - 记事本")
''''Result1 = SQAFindObject("Type=Window;Caption=无标题 - 记事本")
Result = SQAGetProperty("Type=Window;Caption=无标题 - 记事本","Enabled",i)
If Result = sqaSuccess then
If i = True then
Msgbox("Enable")
Else
Msgbox("Disabled")
End if
Else
Msgbox(Cstr(Result))
'Msgbox("fail")
End if
End Sub
'Window SetContext帮助里有这么一段:
If this command fails during playback (for example, if the specified window cannot be found), an error is logged, but playback continue regardless of the playback option for script command failures.
所以用了他可能会造成无法找到窗体
上面的代码里我把它注释掉了,你可以试试看,包含它的时候无法找到窗体(重新启动窗体后在执行也找不到),注释掉他后,执行肯定可以找到窗体(如果找不到清关掉无关窗口或者重新启动记事本程序既可以找到)
页:
[1]