当前位置: 首页 > news >正文

python键盘操作工具:ctypes、pyautogui

这里模拟 Win + Ctrl + L 组合键

1、ctypes

ctypes库,它允许我们直接调用Windows API来模拟键盘输入。

import ctypes
import time# 定义所需的常量和结构
LONG = ctypes.c_long
DWORD = ctypes.c_ulong
ULONG_PTR = ctypes.POINTER(DWORD)
WORD = ctypes.c_ushortclass MOUSEINPUT(ctypes.Structure):_fields_ = (("dx", LONG),("dy", LONG),("mouseData", DWORD),("dwFlags", DWORD),("time", DWORD),("dwExtraInfo", ULONG_PTR))class KEYBDINPUT(ctypes.Structure):_fields_ = (("wVk", WORD),("wScan", WORD),("dwFlags", DWORD),("time", DWORD),("dwExtraInfo", ULONG_PTR))class HARDWAREINPUT(ctypes.Structure):_fields_ = (("uMsg", DWORD),("wParamL", WORD),("wParamH", WORD))class INPUT(ctypes.Structure):class _INPUT(ctypes.Union):_fields_ = (("ki", KEYBDINPUT),("mi", MOUSEINPUT),("hi", HARDWAREINPUT))_anonymous_ = ("_input",)_fields_ = (("type", DWORD),("_input", _INPUT))# 定义按键代码
VK_LWIN = 0x5B
VK_CONTROL = 0x11
VK_L = 0x4C# 定义SendInput函数
SendInput = ctypes.windll.user32.SendInput
SendInput.restype = ctypes.c_uint
SendInput.argtypes = [ctypes.c_uint, ctypes.POINTER(INPUT), ctypes.c_int]# 创建INPUT结构
def create_input(vk, press):return INPUT(type=1, ki=KEYBDINPUT(wVk=vk, wScan=0, dwFlags=0x0002 if not press else 0))# 发送按键
def send_key_combo(keys):inputs = [create_input(key, True) for key in keys]inputs += [create_input(key, False) for key in reversed(keys)]n_inputs = len(inputs)array_type = INPUT * n_inputsc_inputs = array_type(*inputs)SendInput(n_inputs, c_inputs, ctypes.sizeof(INPUT))# 等待5秒,确保系统已完全启动
time.sleep(5)# 发送 Win + Ctrl + L 组合键
send_key_combo([VK_LWIN, VK_CONTROL, VK_L])

2、pyautogui

https://www.jianshu.com/p/3f5d0252f4a3
pyautogui库是一种用于自动化任务的强大工具,它可以模拟鼠标和键盘操作,执行各种GUI任务。无论是进行屏幕截图、自动填写表单、自动化测试还是进行GUI操作,pyautogui都可以派上用场。

安装

pip install pyautogui

代码

import pyautogui
import time# 确保 pyautogui 库已安装
# 如果没有安装,可以使用以下命令进行安装:
# pip install pyautogui# 为了确保按键按下的顺序正确,可以稍微延迟一下
time.sleep(2)# 按下 Win 键
pyautogui.keyDown('win')# 按下 Ctrl 键
pyautogui.keyDown('ctrl')# 按下 L 键
pyautogui.keyDown('l')# 释放 L 键
pyautogui.keyUp('l')# 释放 Ctrl 键
pyautogui.keyUp('ctrl')# 释放 Win 键
pyautogui.keyUp('win')
http://www.lryc.cn/news/405030.html

相关文章:

  • 计算机网络发展历史
  • 记录安装android studio踩的坑 win7系统
  • Python图形编程-PyGame快速入门
  • 邦芒宝典:8种方法调整职场心态
  • 华为OD2024D卷机试题汇总,含D量50%+,按算法分类刷题,事半功倍
  • Unity UGUI 之 Graphic Raycaster
  • 类和对象——相关的零碎知识
  • 【hadoop大数据集群 1】
  • TQSDRPI开发板教程:实现PL端的UDP回环与GPSDO
  • array.some() ==> 查找数组list中,是否有包含与当前currKey的值不一样的misId
  • 最简单的typora+gitee+picgo配置图床
  • 【黄啊码】GPT的相关名词解释
  • git stash 命令详解
  • txt格式单词导入有道词典生词本 (java代码方式)
  • 轨迹优化 | 基于ESDF的共轭梯度优化算法(附ROS C++/Python仿真)
  • 深入浅出WebRTC—ALR
  • BSV区块链技术现实应用原理解析
  • 七大基于比较的排序算法
  • web前端 React 框架面试200题(四)
  • 5.Fabric的共识机制
  • 【safari】react在safari浏览器中,遇到异步时间差的问题,导致状态没有及时更新到state,引起传参错误。如何解决
  • 京准:GPS北斗卫星授时信号安全隔离防护装置
  • 解决方案架构师系列 - AWS - Pinpoint
  • MF173:将多个工作表转换成PDF文件
  • Docker、containerd、CRI-O 和 runc 之间的区别
  • PRISM-Python 中的规则一个简单的 Python 规则感应系统
  • DB-GPT:LLM应用的集大成者
  • 汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法
  • 基于 PyTorch 的模型瘦身三部曲:量化、剪枝和蒸馏,让模型更短小精悍!
  • 二、原型模式