如何使用python来模拟鼠标点击(将通过实例自动化模拟在360浏览器中自动搜索"python")
2017-08-20 01:23
1056 查看
一、准备工作:
安装pywin32,后面开发需要pywin32的支持,否则无法完成与windows层面相关的操作。
pywin32的具体安装及注意事项:
1、整体开发环境:
基于windows7操作系统;
提前安装python(因为篇幅问题,在此不详细讲解python环境的安装,大家可以自备楼梯);
大家可以在cmd中测试下python环境是否安装好:
大家可以看到我电脑上已经安装好了Python,并显示版本与是V 3.6.2。
注:自己电脑上的Python版本号一定要知道,后面安装pywin32是要与python的版本相对应才行。
2、具体安装方法及详细的步骤:
首先下载pywin32安装包
①.访问pywin32下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/
②.务必要下载与自己电脑上已安装的python版本对应的pywin32安装包,例如python3.6.2 64位对应的安装包为pywin32-221.win-amd64-py3.6.exe
点击第一项:Build 221进入(pywin32-221.win-amd64-py3.6.exe在这里面下面)
选择pywin32-221.win-amd64-py3.6.exe文件下载到本地,大小是9.5M,不是很大,下载很快的。
3.安装刚下载好的pywin32-221.win-amd64-py3.6.exe安装包,双击运行,之后就是一路的点下一步就可以安装完成。
需要注意的是:安装目录是不能自己乱改变的,系统会根据你电脑上的python安装路径自动填写,
我的电脑上的python安装在C:\Users\lenovo\AppData\Local\Programs\Python\Python36;
所以系统会自动根据我安装的Python安装目录将pywin32安装在C:\Users\lenovo\AppData\Local\Programs\Python\Python36\Lib\site-packages\目录中。
如果说你安装过程中系统没有自动给你填写pywin32的安装目录,说明你的python安装有问题,请检查自己的python安装那里出问题。(提示下:安装完Python后注意配置环境变量)
如果你一切还胜利的话,那么恭喜你可以继续往后看。
④为了确定安装pywin32成功,你一定要检查下安装结果,可以在python命令行输入import win32api。
也可以在python shell中测试下pywin32是否成功。
成功的话,在开始菜单中的python3.6目录下会有PythonWin这项。
如果上面测试没有报错,开始菜单也有PythonWin,则说明安装Pywin32成功了。
如果报错的话说明PYTHONPATH环境变量没有配置好。
⑤如何配置PYTHONPATH环境变量,这时你需要将python安装目录下lib目录中的site-packages路径添加到PYTHONPATH环境变量中。
注意:PYTHONPATH是用户变量。如果没有这项可以新建。
可以在CMD中查看下path。
⑥大家一定要保证pywin32版本和python版本一致,对32位和64位的支持也要和python一致,64位的系统就安装64位的pywin32,32位的就安装32位的pywin32。
如果有问题的话,请重复步骤⑤再次检验安装配置结果再检查测试下。
二、开始开发:
1、从开始菜单打开pythonwin
2、在pythonWin中新建.py文件:
新建文件时,在弹出窗中选择Python Script,再点击OK就行了。
3、开始编码:直接上代码了。
在Python程序中导入win32api,win32con,win32gui,其次引入ctypes模块,载入动态链接库(后面会用到C函数)。
大家想要对Python调用ctypes如何使用C函数想更多了解的,可以去看看Python调用ctypes使用C函数printf
键盘上符号对应的VK_CODE的具体值。参考
test.py
当运行test.py时,会模拟在360浏览器的搜索框自动输入python,同时点击搜索按钮开始搜索。
安装pywin32,后面开发需要pywin32的支持,否则无法完成与windows层面相关的操作。
pywin32的具体安装及注意事项:
1、整体开发环境:
基于windows7操作系统;
提前安装python(因为篇幅问题,在此不详细讲解python环境的安装,大家可以自备楼梯);
大家可以在cmd中测试下python环境是否安装好:
大家可以看到我电脑上已经安装好了Python,并显示版本与是V 3.6.2。
注:自己电脑上的Python版本号一定要知道,后面安装pywin32是要与python的版本相对应才行。
2、具体安装方法及详细的步骤:
首先下载pywin32安装包
①.访问pywin32下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/
②.务必要下载与自己电脑上已安装的python版本对应的pywin32安装包,例如python3.6.2 64位对应的安装包为pywin32-221.win-amd64-py3.6.exe
点击第一项:Build 221进入(pywin32-221.win-amd64-py3.6.exe在这里面下面)
选择pywin32-221.win-amd64-py3.6.exe文件下载到本地,大小是9.5M,不是很大,下载很快的。
3.安装刚下载好的pywin32-221.win-amd64-py3.6.exe安装包,双击运行,之后就是一路的点下一步就可以安装完成。
需要注意的是:安装目录是不能自己乱改变的,系统会根据你电脑上的python安装路径自动填写,
我的电脑上的python安装在C:\Users\lenovo\AppData\Local\Programs\Python\Python36;
所以系统会自动根据我安装的Python安装目录将pywin32安装在C:\Users\lenovo\AppData\Local\Programs\Python\Python36\Lib\site-packages\目录中。
如果说你安装过程中系统没有自动给你填写pywin32的安装目录,说明你的python安装有问题,请检查自己的python安装那里出问题。(提示下:安装完Python后注意配置环境变量)
如果你一切还胜利的话,那么恭喜你可以继续往后看。
④为了确定安装pywin32成功,你一定要检查下安装结果,可以在python命令行输入import win32api。
也可以在python shell中测试下pywin32是否成功。
成功的话,在开始菜单中的python3.6目录下会有PythonWin这项。
如果上面测试没有报错,开始菜单也有PythonWin,则说明安装Pywin32成功了。
如果报错的话说明PYTHONPATH环境变量没有配置好。
⑤如何配置PYTHONPATH环境变量,这时你需要将python安装目录下lib目录中的site-packages路径添加到PYTHONPATH环境变量中。
注意:PYTHONPATH是用户变量。如果没有这项可以新建。
可以在CMD中查看下path。
⑥大家一定要保证pywin32版本和python版本一致,对32位和64位的支持也要和python一致,64位的系统就安装64位的pywin32,32位的就安装32位的pywin32。
如果有问题的话,请重复步骤⑤再次检验安装配置结果再检查测试下。
二、开始开发:
1、从开始菜单打开pythonwin
2、在pythonWin中新建.py文件:
新建文件时,在弹出窗中选择Python Script,再点击OK就行了。
3、开始编码:直接上代码了。
## _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * import time
在Python程序中导入win32api,win32con,win32gui,其次引入ctypes模块,载入动态链接库(后面会用到C函数)。
大家想要对Python调用ctypes如何使用C函数想更多了解的,可以去看看Python调用ctypes使用C函数printf
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}
键盘上符号对应的VK_CODE的具体值。参考
test.py
#
# _*_ coding:UTF-8 _*_
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)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 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_LEFTUP, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 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)
if __name__ == "__main__":
mouse_click(500,280)
str1 = 'python'
key_input(str1)
mouse_click(1000,280)
当运行test.py时,会模拟在360浏览器的搜索框自动输入python,同时点击搜索按钮开始搜索。
相关文章推荐
- Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
- 使用Python来模拟鼠标的点击
- 如何使用SendMessage函数实现模拟鼠标点击按钮事件?
- 使用Python来模拟鼠标的点击
- 在windows下使用cmd命令通过adb shell自动调用android模拟或真机的InstrumentRunner进行android 自动化测试
- python 模拟鼠标点击自动下载文件然后输出文件名
- 使用python通过selenium模拟打开chrome窗口报错 出现 "您使用的是不受支持的命令行标记:--ignore-certificate-errors
- 使用powershell/vbs自动化模拟鼠标点击操作
- 使用UI Automation实现自动化测试--6 (模拟鼠标在自动化测试中的应用)
- 如何通过使用 WinInet 模拟 FormPOST 请求
- 如何通过使用 Visual c + + 5.0 或 Visual c + + 6.0 中的 Microsoft 基础类具有自动化 PowerPoint
- 以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格?
- 使用python代码实现三叉搜索树高效率”自动输入提示”功能
- 通过实例学习如何使用telerik:RadListView控件
- SDL使用触屏模拟鼠标点击事件
- QTP在录制脚本的时候会将鼠标点击过的对象自动添加到对象库中,而那些未被点击过的对象将不会被添加,导致针对某一对象手动添加的脚本运行不通过,因此需要手动把测试对象添加到对象库中,方法如下:
- Python中Sqlite的使用&ORM的使用&如何通过code初始化DB
- 再谈布局控件"WeifenLuo.WinFormsUI.Docking"的使用--如何控制自动停靠窗口的大小
- c#使用API进行模拟鼠标点击 底层操作同样简单