chenxu Posted March 25, 2008 Share Posted March 25, 2008 I am dealing an application whose controls' control ID or classnameNN changes very time when I restart it these days. At first, I found it hard to control the application since the changing of its controls' control ID and classnameNN. I tried many ways, including get the control ID by position of it, but I failed. At last, I found an effective way to approach my purpose. Although the controls' control ID or classnameNN changes very time, but the text of the control or 'near' the control remains unchanged which is the most important condition of this method. So, I can control the control directly by using the text. But, the imput box or something like them can not control in this way since there is no text in it. In this situation, you can focus the nearest control of the target control you willing to control to, most of time, it is an Static or an Checkbox or a radio button which is very earily to focus. and you can send the control one or two '{tab}' to switch the focus to the target control. And the last step is use the command: ControlGetFocus to get the control reference to the target control, and you can just do what you want to like controlling a normal control of the other application. This is an effective and a high efficiency way to quickly control some control which changes control ID very time. chenxu Link to comment Share on other sites More sharing options...
someone Posted March 25, 2008 Share Posted March 25, 2008 Can you post a little code? I understand what your saying just interested to see an example... I had an application that sounded similar, (Peregrine Service Center) and ended up grabbing the entire window text, converting it to an array, and sifting through via regxp for known patters of text I was trying to find... from there, I could nab all the other data relative to the position regxp helped me nab. Glad to hear you got things working though, congrats, thanks for sharing While ProcessExists('Andrews bad day.exe') BlockInput(1) SoundPlay('Music.wav') SoundSetWaveVolume('Louder') WEnd Link to comment Share on other sites More sharing options...
chenxu Posted March 26, 2008 Author Share Posted March 26, 2008 ControlFocus("添加好友", $no, "[Text:我是]") ControlSend("添加好友", $no, "[Text:我是]", "{tab}") Sleep(50) $fieldName = ControlGetFocus("添加好友", $no) This is some simple code Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now