python模拟鼠标、捕获按键事件

       阅读(542)  2017-10-24 22:03:32

在这里我需要连续的双击鼠标左键; 用按键1(不是数字小键盘里面的1)来控制运行,其他按键暂停。


#-------------------------------------------------------------------------------
# Name:        
# Purpose:
#
# Author:      Administrator
#
# Created:     02/10/2012
# Copyright:   (c) Administrator 2012
# Licence:     <your licence>
#-------------------------------------------------------------------------------

import win32gui, win32api, win32con
import time
import threading
import pythoncom
import pyHook

flag = '0'

def click_event():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 )

def double_click_event():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 )
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 )
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
    
def get_flag(event):
    global flag
    flag = event.GetKey()

def start_hook():
    hm = pyHook.HookManager()
    hm.KeyDown = get_flag
    hm.HookKeyboard()
    pythoncom.PumpMessages()

def start_mouse():
    interval = 1
    while True:
        time.sleep(interval)
        if '1' == flag:
            double_click_event()
        
def main():
    t1 = threading.Thread(target = start_hook)
    t1.start()

    t2 = threading.Thread(target = start_mouse)
    t2.start()

if __name__ == '__main__':
    main()


文章评论

Keep it simple,stupid
文章数
284
总访问量
263212
今日访问
125
最近评论

ningto : 请到next.ningto.com里发表评论。
tujiaw : 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞 : 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
于淞 : 你好,这个文章的源码能分享一下吗,838106303@163.com,谢谢了 上面的链接不能用了
tujiaw : 多谢多谢
essaypinglun college-paper.org : 很好的博客,赞赞
Folly : 这个实现有点奇怪,Qt为什么没有统一的比对方法。
过多s : alert("hello, world!")
tujiaw : 还不错哦
回到顶部