我不是理论派,那就从实践中成长吧 微博:http://www.weibo.com/willsfanw

python实例练手007

上一篇 / 下一篇  2010-06-24 16:46:15

今天在测试的过程中,遇上一个需要在全屏状态下,运行某工具,看是否会我们的软件是否会抢焦点等情况
需求:
在全屏状态(屏保or其他软件全屏)下,点击某工具的button

只是一个简单的点击动作,开始考虑使用autoit里的mouseclick函数,但是想到其的实现方式是点击坐标方式,而全屏下没法命中后台运行的工具的button,于是考虑使用API sendmessage来实现

原理:
获取工具窗体的句柄findwindow ——》再获取工具上button的句柄 GetDlgItem ——》最后sleep(10秒)后对该buttion执行sendmessage一个点击的动作

01 #!/usr/bin/env python
02 #coding:utf-8
03 import win32api
04 import win32gui
05 import win32con
06 import time
07 
08 class WindowTest():
09     def __init__(self,cNameIn = None,tNameIn = None):
10         self.className = cNameIn
11         self.titleName = tNameIn
12 
13     def ActionTest(self):
14         hWndWind = win32gui.FindWindow(self.className,self.titleName)
15         print hWndWind
16         hWndBnt = win32gui.GetDlgItem(hWndWind,1004)
17         if hWndBnt != 0 :
18             print 'ok'
19             tmp = win32api.MAKELONG(2,2)
20             win32gui.SendMessage(hWndBnt,win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)
21             win32gui.SendMessage(hWndBnt,win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,tmp)
22             win32gui.SendMessage(hWndBnt,win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,tmp)
23 
24 test = WindowTest('#32770','TestTool')
25 time.sleep(10)
26 test.ActionTest()

TAG:

 

评分:0

我来说两句

日历

« 2024-05-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 18167
  • 日志数: 22
  • 建立时间: 2009-12-07
  • 更新时间: 2011-09-26

RSS订阅

Open Toolbar