connie 发表于 2005-7-5 11:06:14

[学习交流]WR中的MSW_id及高亮(Highlighting)问题

1、关于MSW_id:
前段时间在学习生如火花的“GUI文件的制作及维护”时,碰到如“GUI文件的制作及维护(一)”中提及的问题:
“看有没有msw_id这一行。有的话,删掉,用location:X换掉他”
如上所述,我在录制脚本的过程当中也碰到很多有MSW_id这个属性的控件。但是这些控件并非在每次登入重新录制时就会产生改变,所以我有了一些疑惑,MSW_id到底是什么属性!?
我在“GUI文件的制作及维护(一)”贴中提到这个问题但是至今没有得到答复。今天在学习其他资料时终于得到了答案:
MSW_id是微软窗体标示符,全称为Microsoft Windows ID,所以他并非是在每次录制过程中都会产生改变的一个值,事实上他是一个固定的值。他是对微软窗体的一个标示。
极有可能产生的情况是,一个页面存在拥有同一个MSW_id的控件,在这种时候,WR会使用选择符location来区分。
关于选择符需要提到的是,在WR中存在两种选择符:location,index
location选择符根据对象在窗体中的位置(从上到下,从左到右)来选择;
index选择符则是根据开发人员分配给对象的唯一数字来选择。
WR默认使用location选择符。所以我们常常在learn一个页面内容时发现有一些控件的物理描述当中既有MSW_id也有location。

2、Highlighting问题:
在learn一个页面的控件时,常有一些控件无法高亮(highlighting)显示,但是并非就标示他是不存在的某一个变化了的值,而极有可能是某个需要达到某个条件才能触发的控件。
如测试棋牌游戏,在learn游戏桌页面时,得到了很多带有_1,_2,_3标志的控件,点击这些控件并没有高亮(highlighting)显示。后来我发现这些都是显示在桌面上各位玩家手中的牌,之所以没有highlighting是因为我当时并非处于游戏状态,所以桌面上没有显示玩家手中的牌,所以无法highlighting出来。
通常情况下,如果GUI Map Editor最下方显示为:Object is not found. Cannot Highlight,才说明在这个页面这个控件可能不存在。而当最下方显示为:Active GUI file: <“文件名”>,则说明这个控件存在,但是还没有满足他出现的条件,所以无法highlighting。你可以尝试在漫漫使得各项条件成立的情况下,该控件是否可以高亮显示出来。如果可以,最好标示一下,将它的逻辑名改为以后能够分辨出来的名字。也有助于重复利用及维护。

[ Last edited by connie on 2005-7-5 at 11:07 ]

shyfish 发表于 2005-7-5 13:14:25

1。
并不是所有地方都叫MSW_ID,用spy++来看,它就叫control id,不过也是个固定值(至少我看到的一些都是这样的,有可能会变化,只是没找到这样的),ID相同的情况确实也有
index用什么来指定?好像不行啊,至少我在VC好像没看到有个index属性的,不过tab顺序倒是确实可以自己设定,这个index属性是tab顺序吗?不知道
2。
highlight其实也不需要什么条件,只要它是活动的最顶层窗口即可;如果你的WR是最大化的,而你的程序的窗口不是像QQ那种always on top的窗口,就会看不到highlight的效果,因为WR是当前窗口(虚拟控件是个例外,highlight虚拟控件的时候会自动把该窗口active提到最前)

connie 发表于 2005-7-5 13:23:45

Originally posted by shyfish at 2005-7-5 13:14:
highlight其实也不需要什么条件,只要它是活动的最顶层窗口即可;如果你的WR是最大化的,而你的程序的窗口不是像QQ那种always on top的窗口,就会看不到highlight的效果,因为WR是当前窗口(虚拟控件是个例外,highlight虚拟控件的时候会自动把该窗口active提到最前)


我想你没明白我的意思,其实我们想表达的是一样的,满足一定条件,某些控件才能be active,所以我这里说的满足条件是这个意思。
另外看控件是否是highlighting,很显然,我不会把WR置为当前窗口来判断。一定是把窗口缩小了放在旁边不会挡到我需要检验的控件位置。

zengyixun 发表于 2006-4-12 12:10:46

它的变化不是说你重新录就会变,而是这个控件重新被创建后,这个ID就会变,如关闭了窗口或退出了这个软件,再运行软件进入这个窗口,这些控件ID就会改变了。
页: [1]
查看完整版本: [学习交流]WR中的MSW_id及高亮(Highlighting)问题