当前位置:  编程技术>python

windows下python模拟鼠标点击和键盘输示例

    来源: 互联网  发布时间:2014-10-04

    本文导语:  需要先装pywin32,windows下调用winapi的接口 代码如下:## _*_ coding:UTF-8 _*___author__ = 'shanl' import win32apiimport win32conimport win32guifrom ctypes import *import time VK_CODE = {    'backspace':0x08,    'tab':0x09,    'clear':0x0C,    'enter':0x0D,    'shift':...

需要先装pywin32,windows下调用winapi的接口

代码如下:

#
# _*_ coding:UTF-8 _*_
__author__ = 'shanl'

import win32api
import win32con
import win32gui
from ctypes import *
import time

VK_CODE = {
    'backspace':0x08,
    'tab':0x09,
    'clear':0x0C,
    'enter':0x0D,
    'shift':0x10,
    'ctrl':0x11,
    'alt':0x12,
    'pause':0x13,
    'caps_lock':0x14,
    'esc':0x1B,
    'spacebar':0x20,
    'page_up':0x21,
    'page_down':0x22,
    'end':0x23,
    'home':0x24,
    'left_arrow':0x25,
    'up_arrow':0x26,
    'right_arrow':0x27,
    'down_arrow':0x28,
    'select':0x29,
    'print':0x2A,
    'execute':0x2B,
    'print_screen':0x2C,
    'ins':0x2D,
    'del':0x2E,
    'help':0x2F,
    '0':0x30,
    '1':0x31,
    '2':0x32,
    '3':0x33,
    '4':0x34,
    '5':0x35,
    '6':0x36,
    '7':0x37,
    '8':0x38,
    '9':0x39,
    'a':0x41,
    'b':0x42,
    'c':0x43,
    'd':0x44,
    'e':0x45,
    'f':0x46,
    'g':0x47,
    'h':0x48,
    'i':0x49,
    'j':0x4A,
    'k':0x4B,
    'l':0x4C,
    'm':0x4D,
    'n':0x4E,
    'o':0x4F,
    'p':0x50,
    'q':0x51,
    'r':0x52,
    's':0x53,
    't':0x54,
    'u':0x55,
    'v':0x56,
    'w':0x57,
    'x':0x58,
    'y':0x59,
    'z':0x5A,
    'numpad_0':0x60,
    'numpad_1':0x61,
    'numpad_2':0x62,
    'numpad_3':0x63,
    'numpad_4':0x64,
    'numpad_5':0x65,
    'numpad_6':0x66,
    'numpad_7':0x67,
    'numpad_8':0x68,
    'numpad_9':0x69,
    'multiply_key':0x6A,
    'add_key':0x6B,
    'separator_key':0x6C,
    'subtract_key':0x6D,
    'decimal_key':0x6E,
    'divide_key':0x6F,
    'F1':0x70,
    'F2':0x71,
    'F3':0x72,
    'F4':0x73,
    'F5':0x74,
    'F6':0x75,
    'F7':0x76,
    'F8':0x77,
    'F9':0x78,
    'F10':0x79,
    'F11':0x7A,
    'F12':0x7B,
    'F13':0x7C,
    'F14':0x7D,
    'F15':0x7E,
    'F16':0x7F,
    'F17':0x80,
    'F18':0x81,
    'F19':0x82,
    'F20':0x83,
    'F21':0x84,
    'F22':0x85,
    'F23':0x86,
    'F24':0x87,
    'num_lock':0x90,
    'scroll_lock':0x91,
    'left_shift':0xA0,
    'right_shift ':0xA1,
    'left_control':0xA2,
    'right_control':0xA3,
    'left_menu':0xA4,
    'right_menu':0xA5,
    'browser_back':0xA6,
    'browser_forward':0xA7,
    'browser_refresh':0xA8,
    'browser_stop':0xA9,
    'browser_search':0xAA,
    'browser_favorites':0xAB,
    'browser_start_and_home':0xAC,
    'volume_mute':0xAD,
    'volume_Down':0xAE,
    'volume_up':0xAF,
    'next_track':0xB0,
    'previous_track':0xB1,
    'stop_media':0xB2,
    'play/pause_media':0xB3,
    'start_mail':0xB4,
    'select_media':0xB5,
    'start_application_1':0xB6,
    'start_application_2':0xB7,
    'attn_key':0xF6,
    'crsel_key':0xF7,
    'exsel_key':0xF8,
    'play_key':0xFA,
    'zoom_key':0xFB,
    'clear_key':0xFE,
    '+':0xBB,
    ',':0xBC,
    '-':0xBD,
    '.':0xBE,
    '/':0xBF,
    '`':0xC0,
    ';':0xBA,
    '[':0xDB,
    '\':0xDC,
    ']':0xDD,
    "'":0xDE,
    '`':0xC0}

class POINT(Structure):
    _fields_ = [("x", c_ulong),("y", c_ulong)]

def get_mouse_point():
    po = POINT()
    windll.user32.GetCursorPos(byref(po))
    return int(po.x), int(po.y)

def mouse_click(x=None,y=None):
    if not x is None and not y is None:
        mouse_move(x,y)
        time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

def mouse_dclick(x=None,y=None):
    if not x is None and not y is None:
        mouse_move(x,y)
        time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

def mouse_move(x,y):
    windll.user32.SetCursorPos(x, y)

def key_input(str=''):
    for c in str:
        win32api.keybd_event(VK_CODE[c],0,0,0)
        win32api.keybd_event(VK_CODE[c],0,win32con.KEYEVENTF_KEYUP,0)
        time.sleep(0.01)

def t0():
    pass

def t2():
    mouse_click(800,200)
    for c in 'hello':
        win32api.keybd_event(65,0,0,0) #a键位码是86
        win32api.keybd_event(65,0,win32con.KEYEVENTF_KEYUP,0)
    #print get_mouse_point()

def t1():
    #mouse_move(1024,470)aa
    #time.sleep(0.05)
    #mouse_dclick()HELLO

    mouse_dclick(1024,470)

def t3():
    mouse_click(1024,470)
    str = 'hello'
    for c in str:
        win32api.keybd_event(VK_CODE[c],0,0,0) #a键位码是86
        win32api.keybd_event(VK_CODE[c],0,win32con.KEYEVENTF_KEYUP,0)
        time.sleep(0.01)

def t4():
    mouse_click(1024,470)
    str = 'hello'
    key_input(str)

if __name__ == "__main__":
    t4()
    #t3()
    #t2()
    #t1()
    t0()


    
 
 

您可能感兴趣的文章:

  • python调用windows api锁定计算机示例
  • windows中允许服务与桌面交互的更改方法示例
  • c#获取windows桌面背景代码示例
  • window调用api列出当前所有进程示例
  • pyqt4教程之实现windows窗口小示例分享
  • windows系统中python使用rar命令压缩多个文件夹示例
  • c++利用windows函数实现计时示例
  • C#调用windows api关机(关机api)示例代码分享
  • 利用windows性能计数器进行服务器性能监控示例分享
  • c#调用api控制windows关机示例(可以重启/注销)
  • 使用winapi安装Windows服务示例程序
  • Windows网络编程之winsock实现文件传输示例
  • c#使用windows服务更新站点地图的详细示例
  • mingw编译的windows命令行贪吃蛇示例
  • java模仿windows计算器示例
  • python实现监控windows服务并自动启动服务示例
  • linux启动时就设置进入图形模式(不是加载X-Window),但这个模式下,如果响应鼠标和键盘事件(可以响应所有键值和鼠标按键)!
  • 用pywin32实现windows模拟鼠标及键盘动作
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • unix下鼠标使用很别扭。没有windows下流畅,感觉鼠标每次移动很多个像素,间距很大。怎么回事?
  • 完了!linux下删除鼠标竟然使windows2000检测不到鼠标?!解决了给分!!!
  • 我的鼠标不能被识别,进不了x-windows~~~~~~大虾救救我!
  • X-WINDOWS下面用不了USB鼠标
  • freebsd在配置好X-Window后进入、鼠标用不了
  • 100分请教X-Windows下,如何在某窗口上锁定鼠标右键.
  • Windows虚拟机下安装完RedHat Linux9鼠标不好使了...
  • VMware4.0下的linux8.0进X-windows后鼠标不能用~!
  • 在linux 系统X WINDOWS中,没有鼠标时,怎样打开系统菜单?
  • Linux 的鼠标移动加速特性非常不好用,手感很不好,如何将其修改成像Windows那样的?
  • 急急急!!!在java中如何实现,鼠标指向某处时,自动出现此处的提示,象windows那样的
  • java命名空间java.awt类window.accessibleawtwindow的类成员方法: window.accessibleawtwindow定义及介绍
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • java命名空间java.awt类window的类成员方法: window定义及介绍
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • java命名空间java.awt.event类windowevent的类成员方法: window_activated定义及介绍
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • java命名空间java.awt.event类windowevent的类成员方法: window_deactivated定义及介绍
  • redhat7.3+window me +windows xp 共存,MBR在windows me 分区,现在要重裝windwos me,怎么办?
  • java命名空间java.awt.event类windowevent的类成员方法: window_gained_focus定义及介绍
  • 装了Linux和Windows,怎样默认进入Windows
  • java命名空间java.awt.event类windowevent的类成员方法: window_lost_focus定义及介绍
  • Linux与windows共存时,如何将Windows设置为默认启动系统?
  • java命名空间java.awt类window的类成员方法: setvisible定义及介绍
  • 怎样是编好的java application在windows上像windows应用程序一样直接运行
  • java命名空间java.awt类systemcolor的类成员方法: window定义及介绍
  • windows 和linux双系统,重装windows后,无法启动linux?
  • java命名空间javax.accessibility类accessiblerole的类成员方法: window定义及介绍
  • 如何将linux的一台机器加入windows 2000的域?并且通过一windows的机器上网?
  • java命名空间java.awt.event类keyevent的类成员方法: vk_windows定义及介绍
  • 为什么在安装了WINDOWS和LINUX的电脑上,重装WINDOWS会破坏MBR?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3