首页 > 其他分享 >对软件进行随机鼠标操作

对软件进行随机鼠标操作

时间:2023-06-18 12:12:36浏览次数:28  
标签:exe 鼠标 screen random 随机 key import print 软件

对VAT.exe软件操作,按esc杀掉python.exe进程

# -*- coding:utf8 -*-

import datetime
import os
import random
import time
from threading import Thread

from pynput.keyboard import Controller, Key, Listener

import pyautogui


# 监听按压
def on_press(key):
    try:
        print("正在按压:", format(key.char))
    except AttributeError:
        print("正在按压:", format(key))


# 监听释放
def on_release(key):
    print("已经释放:", format(key))

    if key == Key.esc:
        # 当输入esc键时,杀掉python36.exe进程
        os.system('taskkill /f /im %s' % 'python.exe')

        # 停止监听
        return False


# 开始监听
def start_listen():
    with Listener(on_press=on_press, on_release=on_release) as listener:
        listener.join()


# 随机动作函数
def random_action():
    while True:
        # 判断进程是否存在,不存在就退出脚本执行
        p_name = 'VAT.exe'
        process_ = len(os.popen(f'tasklist | findstr {p_name}').readlines())
        nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        if process_ == 0:
            print(f'检查不到程序{p_name},{nowTime}退出脚本。。。')
            os._exit(0)

        # 计算屏幕大小
        x_screen, y_screen = pyautogui.size()
        print(x_screen, y_screen)

        # 随机生成屏幕坐标
        x = random.randint(0, x_screen)
        y = random.randint(0, y_screen)

        # 随机动作间隔
        time.sleep(0.5)
        # print(x, y)

        # 随机动作
        action_num = random.randint(0, 10)
        if action_num in (1, 2, 6) and y <= 96:
            continue
        elif action_num == 0:
            # 单击
            pyautogui.click(x, y)
        elif action_num == 1:
            print('# 双击')
            pyautogui.doubleClick(x, y)
        elif action_num == 2:
            print('# 三击')
            pyautogui.tripleClick(x, y)
        elif action_num == 3:
            print('# 中键')
            pyautogui.middleClick(x, y)
        elif action_num == 4:
            # todo:需要选择右键菜单中的选项
            print('# 右键')
            pyautogui.rightClick(x, y)
        elif action_num == 5:
            print('# 鼠标滚轮')
            # scroll函数控制鼠标滚轮的滚动,amount_to_scroll参数表示滚动的格数。正数则页面向上滚动,负数则向下滚动:
            pyautogui.scroll(10, x, y)
        elif action_num == 6:
            print('# 拖拽')
            dragRel_type = random.randint(0, 8)
            # 往各个方向拖拽
            if dragRel_type == 0:
                pyautogui.dragRel(100, 0, duration=0.2)
            elif dragRel_type == 1:
                pyautogui.dragRel(-100, 0, duration=0.2)
            elif dragRel_type == 2:
                pyautogui.dragRel(0, 100, duration=0.2)
            elif dragRel_type == 3:
                pyautogui.dragRel(0, -100, duration=0.2)
            elif dragRel_type == 4:
                pyautogui.dragRel(100, 100, duration=0.2)
            elif dragRel_type == 5:
                pyautogui.dragRel(-100, 100, duration=0.2)
            elif dragRel_type == 6:
                pyautogui.dragRel(100, -100, duration=0.2)
            elif dragRel_type == 7:
                pyautogui.dragRel(-100, -100, duration=0.2)
        elif action_num == 7:
            print('# 打字')
            pyautogui.typewrite('test123')
        elif action_num == 8:
            print('# 回车')
            pyautogui.press('enter')
        elif action_num == 9:
            print('# 快捷键')
            pyautogui.hotkey('ctrl', 'v')


if __name__ == '__main__':
    # 现有两种方式退出运行:1.按esc;2.VAT.exe不存在
    # 最小化cmd窗口
    # pyautogui.hotkey('alt','space')
    # pyautogui.press('n')

    # 实例化键盘
    kb = Controller()
    time.sleep(0.5)

    # 多线程
    threads = []
    # 开始监听,按esc退出监听
    t1 = Thread(target=start_listen, args=())
    t2 = Thread(target=random_action, args=())
    threads.append(t1)
    threads.append(t2)

    # 启动线程
    print('Threading start!')
    for t in threads:
        t.setDaemon(False)
        t.start()
        # t.join()
        time.sleep(0.2)

 

标签:exe,鼠标,screen,random,随机,key,import,print,软件
From: https://www.cnblogs.com/daizichuan/p/17488940.html

相关文章

  • keyshot10免费下载-keyshot10(3D动画渲染)软件 软件大全
    KeyShot10添加了新的关键帧动画和其他动画功能、用于输出到全彩3D打印、AR/Web交互等的新智能导出选项、新的灯光管理器和用于更好地控制几何和模型的新工具、RealCloth2.0和改进焦散以获得更逼真的材料和照明,以及改进的降噪和萤火虫过滤器以加快视觉创建。KeyShot10继续......
  • 中望CAD下载-中望CAD官方版下载「cad制图」软件大全
    中望CAD2023是中望软件自主研发的全新一代二维CAD平台软件,运行速度快,系统稳定性高,界面风格和操作习惯与国外CAD高度一致,兼容DWG最新版本格式文件。[下载地址]:后台私信我中望CAD2020破解版软件特色:一、【全方位提升文档分析全过程,提高运作速率】选用多核并行计算技术性提升服务......
  • 极限科技旗下软件产品 INFINI Easysearch 通过统信 UOS 认证
    近日,极限数据(北京)科技有限公司(以下简称:极限科技)旗下的软件INFINIEasysearch搜索引擎软件V1.0通过统信UOS服务器操作系统V20认证。此次兼容适配基于统信UOS服务器操作系统V20,联合国产CPU:海光5000、海光7000、兆芯KH-30000、兆芯KH20000、兆芯ZX-C+等系列处......
  • Autodesk 123d design官方最新版本下载 软件大全
    软件介绍Autodesk123DDesign是一款完全免费的软件,它能够帮助用户快速而准确地创建3D模型,将模型导出到多种不同格式,为用户节省时间和资源成本,如果你正在寻找一款好用、简单易学但功能齐全的三维CAD软件,那么Autodesk123DDesign肯定是不错的选择。[下载地址]:后台私信我123DDesign......
  • Camtasia Studio9-Camtasia Studio9官方版下载 软件大全
    CamtasiaStudio是最专业的屏幕录像和视频编辑软件,支持屏幕录像、视频的剪辑和编辑、视频菜单制作等功能,可以方便地进行屏幕操作的录制和配音、视频的剪辑和过场动画、添加说明字幕和水印、制作视频封面和菜单、视频压缩和播放。[下载地址]:后台私信我camtasiastudio2020最新版介绍......
  • Corel PaintShop下载-Corel PaintShop(相片管理) 软件大全
    CorelPaintShopPro是一套经济实惠的相片编辑与图形设计软体,不受订阅限。利用专业的影像编辑工具提升相片效果,或使用全新的色盘、笔刷、渐层、花纹及材质创作效果独特的设计。我们简化了使用者介面以提升浏览速度,并针对您最常使用的工具进行改良,更提供了全新工作区以符合您的专业......
  • python自动化办公--pyautogui控制鼠标和键盘操作
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 随机信号通过线性系统
    冲激响应和传输函数分别为$h(t)$和$H(\omega)$的线性时不变系统,当随机信号输入该线性时不变系统时,其输出的信号是由对应各个输入样本函数的输出响应所构成的函数集合,需要用统计的方法分析输出信号的特征。输入随机信号$X(t)$平稳时,输出响应$Y(t)$1.均值$E[Y(t)]=E[X(t)]H(w)......
  • 领域驱动设计-软件核心复杂性应对之道 11-13
    11.分析模式的应用马丁分析模式:表示业务建模中的常见构造分析模式的最大作用是借鉴其他项目的经验,把那些项目中所做的广泛的设计方向讨论和实现结果的经验与当前的模型结合起来。记账:钱不会无中生有,也不会无故消失。它只能从一个账户迁移到另一个账户。当你可以幸运地使用一......
  • 软件重构--代码的坏味道(更新中)
    1.重复代码如何做把相同的部分抽取为一个方法兄弟类:方法放在父类中不相关的类:将重复代码提到一个独立的类中2.过长的函数如何做把复杂的业务拆分成简单的业务,并封装为方法放在本类中分析方法的临时变量,修改变量名为见名知意的名字,然后消除不必要的临时变量分析......