Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Win32::GuiTest control id

by dasgar (Deacon)
on Jan 26, 2013 at 18:32 UTC ( #1015523=note: print w/ replies, xml ) Need Help??


in reply to Win32::GuiTest control id

You've got a few options to choose from. First, there's Spy++ utility from Microsoft that is part of their Visual Studio package. From some blog posts that I found, it looks like the Express versions of Visual Studio do not have the Spy++ utility.

If you don't want to purchase Visual Studio, you've got a few free alternatives. In the examples from Win32::GuiTest, there are spy-- and spy. Since I personally haven't tried either, I can't tell you much about either example scripts.

There's a freeware utility called WinSpy++ that is "based around the Spy++ utility that ships with Microsoft Visual Studio". Again, I haven't used it so I can't provide any more details on it. Recently, someone had posted a question here in the monastery looking for a newer version of WinSpy++ that would work with Windows 7.

Another alternative is to check out AutoIt, which is a freeware tool set that can be used to automate GUI based applications like you can with Win32::GuiTest. One of the tools that they provide is the AutoIt Window Info tool, which can help provide information about the GUI application that you're wanting to automate. In fact, I used this same tool to help find window IDs to modify the calc.pl example from Win32::GuiTest. You can look at my modified code at Re: Problems with WIN32::GUITEST.


Comment on Re: Win32::GuiTest control id
Re^2: Win32::GuiTest control id
by abt (Novice) on Jan 27, 2013 at 17:25 UTC
    I am not supposed to use any of these Tools. But to make things better i have a list of Controlids. It's just the clicking and pushbutton that do not respond. Well some collegae told me that the list he gave me where the control id's. And if I have to use a tool to read the ID's, I am far from flexible. I coe across similar programs that can differ sligthly and new versions where the devolpers have the freedom to change the ID's That will make my task impossible for that means for every verion of every similar ( not exatly the same) program a offline check.

      I am not supposed to use any of these Tools.

      Sure you are

      And if I have to use a tool to read the ID's, I am far from flexible.

      Funny -- because you know what the alternative is? Not doing the job at all

      It kind of sounds like you're trying to automate something for use at your work. If your employer has given you the task to do this automation work, then I personally believe that they need to provide you with what you need. In this case, that would be the use of a utility like the ones I suggested or you need access to key information from the source code. Of course, I've never been employed as a programmer before, so I guess there's a chance that I might be wrong about that.

      Given the restraints that you're claiming that you have to work within, here's my thoughts on what to try.

      First, you can check out the spy-- and spy examples from the Win32::GuiTest module. If you have Perl installed along with Win32::GuiTest, you already have those "installed". Just run them and see if those can help you out.

      Secondly, you can try to use Win32::GuiTest module to come up with some code of your own to explore the window GUI object of the application that you're trying to automate. To help you get started, you can start with something like the code below. Of course, you will need to make some modifications to use your desired program instead of calc.exe. Also, you may need to dig deeper into the windows structure, but this should help get you started.

      Out of curiosity, when you manually use the program that you're trying to automate, can you fully run that program using only the keyboard? If so, I would suggest punting on using PushButton and MouseClick functions. Instead, just go with the SendKeys function, which is providing "keyboard" input to the GUI based application.

        I can not fully control the program using a keyboard and more over, the program is part of a family of programs that are subject to change. The basic structure is there, but buttons and menu is subject to change. Problem is that the control-id's are provided, but doesnt seem to work.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1015523]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2014-12-23 03:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (134 votes), past polls