精华内容
下载资源
问答
  • Python 模拟鼠标操作

    千次阅读 2013-02-06 06:36:56
    Python 模拟鼠标操作  2009-09-13 21:49:44| 分类: python |字号 订阅 Python 模拟鼠标操作 干久了程序员多少都会有使用鼠标的手感觉不适的时候,所以就会换一下手来使鼠标,但是每次换来换去...

    Python 模拟鼠标操作  

    2009-09-13 21:49:44|  分类: python |字号 订阅

    Python 模拟鼠标操作

    干久了程序员多少都会有使用鼠标的手感觉不适的时候,所以就会换一下手来使鼠标,但是每次换来换去很麻烦,所以我写了一段Python的小程序,操作鼠标移动和点击,来完成交换鼠标按键的操作。代码如下:

    import subprocess

    import win32ui,win32con,pythoncom,win32gui,win32process,win32api

    import time

    import string

    from ctypes import *

    ##open mouse properties

    process = subprocess.Popen("control.exe main.cpl")

    time.sleep(1)

    pwin = win32gui.FindWindow(0,'Mouse Properties')

    text = win32gui.GetWindowText(pwin)

    print(text)

    def _windowEnumerationHandler(hwnd, resultList):

        '''Pass to win32gui.EnumWindows() to generate list of window handle,

        window text, window class tuples.'''

        ##print(win32gui.GetWindowText(hwnd))

        resultList.append((hwnd,

                           win32gui.GetWindowText(hwnd),

                           win32gui.GetClassName(hwnd)))

    windows = []

    win32gui.EnumChildWindows(pwin, _windowEnumerationHandler, windows)

    isRight = 0

    def ClickChildControl(hwnd):

        (left, top, right, bottom) = win32gui.GetWindowRect(hwnd)

        print(left,top,right,bottom)

        windll.user32.SetCursorPos(left + (right - left)/2, top + (bottom - top)/2)

        time.sleep(0.5)

        if isRight:

            win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0)

            time.sleep(0.05)

            win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0)

            time.sleep(0.05)

        else:

            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)

            time.sleep(0.05)

            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)

            time.sleep(0.05)

    wantText = "Switch primary and secondary buttons"

    for hwnd, windowText, windowClass in windows:

        if wantText in windowText:

            print('switch')

            isRight = win32gui.SendMessage(hwnd, win32con.BM_GETCHECK, 0, 0)

            ClickChildControl(hwnd)

            isRight = not isRight

    for hwnd, windowText, windowClass in windows:

        if 'OK' in windowText:

            print('Get Ok')

            ClickChildControl(hwnd)

    在Windows XP2 英文, Python 2.6上测试通过。

    展开全文
  • click(on_element=None) ——单击鼠标左键 click_and_hold(on_element=None) ——点击鼠标左键,不松开 context_click(on_element=None) ——点击鼠标右键 double_click(on_element=None) ——双击鼠标左键 drag...

    ActionChains方法列表

    click(on_element=None) ——单击鼠标左键

    click_and_hold(on_element=None) ——点击鼠标左键,不松开

    context_click(on_element=None) ——点击鼠标右键

    double_click(on_element=None) ——双击鼠标左键

    drag_and_drop(source, target) ——拖拽到某个元素然后松开

    drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开

    key_down(value, element=None) ——按下某个键盘上的键

    key_up(value, element=None) ——松开某个键

    move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标

    move_to_element(to_element) ——鼠标移动到某个元素

    move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置

    perform() ——执行链中的所有动作

    release(on_element=None) ——在某个元素位置松开鼠标左键

    send_keys(*keys_to_send) ——发送某个键到当前焦点的元素

    send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素

    示例:

    # -- coding: utf-8 --
    import time
    import unittest
    from selenium import webdriver
    from mall_method import method
    from selenium.webdriver.common.action_chains import ActionChains
    
    
    class WinShang(unittest.TestCase):
        @classmethod
        def setUpClass(self):
            self.driver = webdriver.Chrome()
            self.main = method(self.driver)
            self.url = self.main.eye_url()
            self.driver.get(self.url)
            self.driver.maximize_window()
            self.driver.implicitly_wait(10)
    
        @classmethod
        def tearDownClass(self):
            self.driver.quit()
    
        def test(self):
            action = ActionChains(self.driver)
            source = self.driver.find_element('xpath', '/html/body/div[2]/div[1]/div[3]/div')
            action.drag_and_drop_by_offset(source,618, 300).perform()
            # source:鼠标拖动的原始元素
            # xoffset:鼠标把元素拖动到另外一个位置的x坐标
            # yoffset:鼠标把元素拖动到另外一个位置的y坐标
            ......
    

     

    展开全文
  • 因此,今天我们将换一个模块进行模拟鼠标操作,那就是 Pyautogui.PyAutoGUI 和 PyUserInput 有很大的不同,在windows系统上,它并不需要win32扩展,而是采用ctypes来调用动态链接库函数的功能模块的方式,因此安装...

    来源:Python实用宝典

    作者:Ckend

    用 Pyuserinput 进行模拟键盘鼠标操作,即便安装成功了还是存在很多问题。因此,今天我们将换一个模块进行模拟鼠标操作,那就是 Pyautogui.PyAutoGUI 和 PyUserInput 有很大的不同,在windows系统上,它并不需要win32扩展,而是采用ctypes来调用动态链接库函数的功能模块的方式,因此安装起来非常方便!

    1.准备

    开始之前,你要确保Python和pip已经成功安装在电脑上。

    请选择以下任一种方式输入命令安装依赖

    1. Windows 环境 打开 Cmd (开始-运行-CMD)。
    2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
    3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

    pip install pyautogui

    看到 Successfully installed xxx 则说明安装成功。安装过程中如果提示缺少某些模块,pip install 缺少的模块即可。

    2.基础使用

    在使用上,pyautogui 与 pymouse 和 pykeyboard 差别不大,就是函数名变了。比如说移动鼠标到屏幕中央:

    import pyautogui
    screenWidth, screenHeight = pyautogui.size()
    pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

    鼠标点击:

    pyautogui.click()

    鼠标移动,第一个参数是移动的x轴偏移量,第二个参数是y轴偏移量,第三个参数是移动耗时:

    pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)

    右击、中键、双击、三击任意位置:

    pyautogui.rightClick(x=moveToX, y=moveToY)
    pyautogui.middleClick(x=moveToX, y=moveToY)
    pyautogui.doubleClick(x=moveToX, y=moveToY)
    pyautogui.tripleClick(x=moveToX, y=moveToY)

    当然,还有很多其他有用的函数,相关的其他函数请见pyautogui的中文文档(没错,还有中文文档,感谢译者)

    https://asyncfor.com/posts/doc-pyautogui.html

    3.删除微信收藏练习:

    虽然你可能觉得删除的过程中你无法再用电脑做任何事情,这样的删除没有意义,但是,你可以找一个不需要用到电脑的时间来做这个操作,启动脚本后去喝杯奶茶不香吗?

    首先我们要找到操作目标的x,y值,用上回我们提到的看鼠标软件(看鼠标)进行位置信息的采集:

    看鼠标位置软件:
    链接:https://share.weiyun.com/BlSWOrLx 密码:idhiwy

    我们只需要将这系列操作连续起来自动化运行:

    # Python实用宝典
    # 2020/05/14
    import pyautogui
    import time
    
    pyautogui.rightClick(706, 281)
    time.sleep(0.5)
    pyautogui.click(733, 351)
    time.sleep(0.5)
    pyautogui.click(768, 647)

    没错,就是这么简单,演示一下:

    图片

    然后我们再优化代码,让其可设定删除的条数:

    # Python实用宝典
    # 2020/05/14
    
    import pyautogui
    import time
    DELETE = 10
    delete_num = 0
    while delete_num < DELETE:
        pyautogui.rightClick(706, 281)
        time.sleep(0.5)
        pyautogui.click(733, 351)
        time.sleep(0.5)
        pyautogui.click(768, 647)
        delete_num += 1

    最终效果如下:

    图片

    当然,你也可以在循环里直接 while 1 删除所有收藏哦。

    展开全文
  • import pyautogui pyautogui.click(100, 100) pyautogui.moveTo(100, 150) pyautogui.moveRel(0, 10) # move mouse 10 pixels down pyautogui.dragTo(100, 150) pyautogui.dragRel(0, 10) # drag mouse 10 pixels ...
  • 前言不论是模拟鼠标操作还是键盘操作,实际上我们都使用了pywinauto这个库里面的内容。模拟鼠标操作,我们直接调用pywinauto.mouse这个模块里面的各个方法即可;而模拟键盘输入,我们则需要用到pywinauto.keyboard这...

    前言

    不论是模拟鼠标操作还是键盘操作,实际上我们都使用了pywinauto这个库里面的内容。

    模拟鼠标操作,我们直接调用pywinauto.mouse这个模块里面的各个方法即可;而模拟键盘输入,我们则需要用到pywinauto.keyboard这个模块里面的SendKeys(keyname)方法。

    模拟鼠标动作

    模拟鼠标操作,首先需要获取当前连接的窗口,然后再调用相应模块里面的方法:

    from airtest.core.api import *

    auto_setup(__file__)

    # 获取当前连接的窗口

    dev = device()

    # 拿到鼠标,并模拟鼠标的右键点击操作

    dev.mouse.right_click(coords=(1920,100))

    在pywinauto.mouse这个模块里,还提供了很多常用的鼠标操作的方法:

    # 鼠标点击操作,可以修改coords来指定点击位置

    pywinauto.mouse.click(button='left', coords=(0, 0))

    # 鼠标双击操作,可以修改coords来指定双击位置

    pywinauto.mouse.double_click(button='left', coords=(0, 0))

    # 移动鼠标,可以修改coords使鼠标移动到指定位置

    pywinauto.mouse.move(coords=(0, 0))

    # 鼠标右键点击,可以修改coords来指定右键点击位置

    pywinauto.mouse.right_click(coords=(0, 0))

    # 鼠标滚动操作,可以修改coords来指定滚动位置,修改wheel_dist来指定滚动距离

    pywinauto.mouse.scroll(coords=(0, 0), wheel_dist=1)

    更多模拟鼠标操作的方法,可以

    模拟键盘输入

    调用Airtest封装好的keyevent方法

    比较特别的是,Airtest里面还有封装好的keyevent方法,来供我们发送键盘事件。从下面的源码可以看出,这个方法其实也是用的pywinauto库里面的内容。

    0fd4828a-dc9d-4996-b107-074da7999ba4.png!large

    只要连接了窗口设备,我们就可以直接使用Airtest封装好的keyevent方法来模拟键盘输入,可以省略获取当前窗口的操作:

    from airtest.core.api import *

    auto_setup(__file__)

    # 模拟键盘输入^a和DELETE事件

    keyevent("^a")

    keyevent("{DELETE}")

    调用SendKeys方法

    与模拟鼠标操作类似,调用pywinauto.keyboard模块里面的SendKeys(keyname)方法,也需要先获取当前连接的窗口:

    from airtest.core.api import *

    auto_setup(__file__)

    # 获取当前连接的窗口

    dev = device()

    # 拿到键盘,模拟输入^a,^a代表Ctrl+A,即全选

    dev.keyboard.SendKeys("^a")

    dev.keyboard.SendKeys("{DELETE}")

    注意,这里的keyname需要用""括起来。更多keyname可以参考下图:

    0990f441-cbf4-4f2e-b355-54606ef03446.png!large

    展开全文
  • 主要介绍了python模拟鼠标拖动操作的方法,实例分析了Python鼠标操作及键位操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 引在使用电脑的时候,偶尔有需求要模拟鼠标键盘,进行一些机械重复的操作(刷新网页、抢票、某些小游戏等)。如果为此专门下载一个按键精灵,总感觉杀鸡用牛刀,所以就开始探索一些轻量级解决方案。本人电脑上配置了...
  • 首先模拟鼠标键盘按下释放的动作,本人利用X11这个库,所以要了解X11编程;其次,本身用c或者c++就可以实现了,但是由于本人是py粉,所以总想把代码搬进python,所以本人就要实现python模块,本篇用的ctypes,以后会...
  • 文章目录Python - Python 模拟鼠标和键盘进行基本操作1、安装模块pyautogui2、基本操作 Python - Python 模拟鼠标和键盘进行基本操作 1、安装模块pyautogui 具体装就不说了 2、基本操作 import pyautogui if __...
  • 主要介绍了python模拟鼠标点击和键盘输入的操作,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 通过Python可以模拟鼠标点击和键盘输入的操作,进而可以实现一些比较有趣的功能,例如游戏挂机、自动发消息等。本文以自动发消息为例,实现该功能,通过该代码可以自动往QQ、微信发送任意内容。首先考虑想要实现一个...
  • 1. 安装pyperclip pip install pyperclip 使用方法 复制 pyperclip.copy("hello world") 粘贴 pyperclip.paste()... 参考资料 Python-模拟鼠标键盘动作 python3 使用pyperclip读写剪贴板(windows) github PyUserInput库
  • · 键盘操作 ModuleNotFoundError: No module named 'windows' ModuleNotFoundError: No module named 'pyHook' ModuleNotFoundError: No module named 'pykeyboard' from pymouse.windows import Py...
  • 2、利用Python模拟鼠标和键盘操作,模拟人工去操作此软件。 第一种想法比较难实现,因为首先是没有此软件的接口,没办法进入它的后台。其次是Python没有这样的功能库。 第二种想法容易实现,但是有一个问题,是Py...
  • 参考链接: https://packaging.python.org/tutorials/installing-packages/ https://www.cnblogs.com/achillis/p/10462585.html ... 指令执行: 1、python -m ...
  • 采用的python 库是 pymouse、pykeyboard安装时直接pip安装的,pip install PyUserInput安装不成功的可以参照http://www.lfd.uci.edu/~gohlke/pythonlibs/这个地址,内容很全实现了一个最简单的输入密码,enter进入的...
  • python鼠标模拟操作

    千次阅读 2021-02-13 10:45:43
    通过简单的记录鼠标坐标,并通过计算鼠标下图片的偏移来完成简单的位置校准,用于在微偏移的界面模拟鼠标操作 源码链接 记录部分 # -*- coding:utf-8 -*- import datetime import os from threading import Thread ...
  • python模拟鼠标和键盘

    万次阅读 多人点赞 2019-05-16 17:22:04
    导入pymouse和pykeyboard库,通过PyMouse和PyKeyboard类可以分别实例化鼠标和键盘对象。然后利用类中定义的相应的方法,可以模拟鼠标的移动、单击、双击操作,模拟键盘的输入、按键等操作
  • ##实际运用,视频讲解视频传送门:点我##环境搭建python版本:python-2.7.16安装 pyUserInput(ps:python3.7我试了后装不上)```powershellpip install PyUserInput```速度很慢,需要耐心等待再装个`pip install ...
  • 使用python pynput完全模拟鼠标操作

    千次阅读 2018-12-13 10:52:27
    总是有些事情需要重复性机械性的操作,想要设计代码去做,有些程序又不给接口,这时最简单的方法就是,模拟鼠标操作!  除了不能生孩子,其他都能做的python! 一搜 果然有模拟鼠标键盘操作的库pynput 但是网上的各种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,654
精华内容 4,661
关键字:

python模拟鼠标操作

python 订阅