Controlling windows gui applications from python

tim tim.vets at skynet.be
Mon Nov 21 12:15:19 CET 2005


Thanks for this tip, this looks like exactly what I need.

Is there a more extended documentation for watsup somewhere ?
I didn't find info on:
how to send keystrokes to a program.
how to control ComboBox elements...

trying out the examples, here are some problems I am running into:
I tried adapting the example4.py and example4a.py scripts for running an 
app of my own and clicking a button.
I commented out everything except for running the application and 
clicking a button.
here's what i left in:

###########################

from watsup.launcher import launchApp,terminateApp
from watsup.winGuiAuto import findTopWindows, 
findControl,getEditText,clickButton from watsup.performance import 
PerformanceCheck,PerformanceCheckError from time import 
sleep,time                    
def main(myExecutable,myWantedText):
   # find an instance of SimpleForm. If one isn't there, launch it
   forms=findTopWindows(wantedText=myWantedText)
   if forms:
       form=forms[0]
   else:
       form=launchApp(myExecutable,wantedText=myWantedText)           
button=findControl(form,wantedText='Pref')
   sleep(1)
   clickButton(button)   #sleep(5)
  #terminateApp(form)
if __name__=='__main__':
   print ' please run example4a or 4b'

###########################

when I un-comment the line : "terminateApp(form)" i get the following 
error:

Traceback (most recent call last):
 File 
"C:\Python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", 
line 310, in RunScript
   exec codeObject in __main__.__dict__
 File "C:\Python24\Lib\tim_vets\kip\examples\example4a_gnmidi.py", line 
3, in ?
   main('C:\\tools\\MFiTool3.0_INTL_1.04.00\\MFiTool3.exe','MFi Tool 3')
 File "C:\Python24\Lib\tim_vets\kip\examples\example4_gnmidi.py", line 
14, in main
   button=findControl(form,wantedText='Pref')
 File "C:\Python24\lib\site-packages\watsup\winGuiAuto.py", line 327, in 
findControl
   raise WinGuiAutoError("EnumChildWindows failed with win32gui.error "  +
WinGuiAutoError: EnumChildWindows failed with win32gui.error 853268, 
wantedText='Pref', wantedClass=None, selectionFunction=None, maxWait=1, 
retryInterval=0.1

with this line commented out, getting the 'Pref' button clicked works 
sometimes...
most of the times i get something like:

File "example4_gnmidi.py", line 14, in main
   button=findControl(form,wantedText='Pref')
 File "C:\Python24\lib\site-packages\watsup\winGuiAuto.py", line 327, in 
findControl
   raise WinGuiAutoError("EnumChildWindows failed with win32gui.error "  +
WinGuiAutoError: EnumChildWindows failed with win32gui.error 1442992, 
wantedText='Pref', wantedClass=None, selectionFunction=None, maxWait=1, 
retryInterval=0.1

Opening the application is the only thing that always works...

thanks!


Simon Brunning wrote:

> On 18/11/05, tim <tim.vets at skynet.be> wrote:
>  
>
>> Hi all, I'm almost as new to this list as to python so I hope I don't
>> get a "this has been answered a 100 times before" or anything...
>>
>> Currently I am using a program named 'Macro Scheduler' for automating
>> programs that don't have a command line version.
>> Its a simple scripting language that allows you to automate button
>> clicks, mouse movement, starting programs, checking the state of a
>> window, changing the focus, type text into an input field...etc.
>> Is there a way to do these things from within Python?
>>   
>
>
> <http://www.tizmoi.net/watsup/intro.html>
>
> -- 
> Cheers,
> Simon B,
> simon at brunningonline.net,
> http://www.brunningonline.net/simon/blog/
>
>
>
>  
>






More information about the Python-list mailing list