python 模拟后台点击

这篇具有很好参考价值的文章主要介绍了python 模拟后台点击。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

from ctypes import windll
from ctypes.wintypes import HWND
import string
import time

PostMessageW = windll.user32.PostMessageW
MapVirtualKeyW = windll.user32.MapVirtualKeyW
VkKeyScanA = windll.user32.VkKeyScanA

WM_KEYDOWN = 0x100
WM_KEYUP = 0x101

https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

VkCode = {
“back”: 0x08,
“tab”: 0x09,
“return”: 0x0D,
“shift”: 0x10,
“control”: 0x11,
“menu”: 0x12,
“pause”: 0x13,
“capital”: 0x14,
“escape”: 0x1B,
“space”: 0x20,
“end”: 0x23,
“home”: 0x24,
“left”: 0x25,
“up”: 0x26,
“right”: 0x27,
“down”: 0x28,
“print”: 0x2A,
“snapshot”: 0x2C,
“insert”: 0x2D,
“delete”: 0x2E,
“lwin”: 0x5B,
“rwin”: 0x5C,
“numpad0”: 0x60,
“numpad1”: 0x61,
“numpad2”: 0x62,
“numpad3”: 0x63,
“numpad4”: 0x64,
“numpad5”: 0x65,
“numpad6”: 0x66,
“numpad7”: 0x67,
“numpad8”: 0x68,
“numpad9”: 0x69,
“multiply”: 0x6A,
“add”: 0x6B,
“separator”: 0x6C,
“subtract”: 0x6D,
“decimal”: 0x6E,
“divide”: 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,
“numlock”: 0x90,
“scroll”: 0x91,
“lshift”: 0xA0,
“rshift”: 0xA1,
“lcontrol”: 0xA2,
“rcontrol”: 0xA3,
“lmenu”: 0xA4,
“rmenu”: 0XA5
}

def get_virtual_keycode(key: str):
“”"根据按键名获取虚拟按键码

Args:
    key (str): 按键名

Returns:
    int: 虚拟按键码
"""
if len(key) == 1 and key in string.printable:
    # https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-vkkeyscana
    return VkKeyScanA(ord(key)) & 0xff
else:
    return VkCode[key]

def key_down(handle: HWND, key: str):
“”"按下指定按键

Args:
    handle (HWND): 窗口句柄
    key (str): 按键名
"""
vk_code = get_virtual_keycode(key)
scan_code = MapVirtualKeyW(vk_code, 0)
# https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keydown
wparam = vk_code
lparam = (scan_code << 16) | 1
PostMessageW(handle, WM_KEYDOWN, wparam, lparam)

def key_up(handle: HWND, key: str):
“”"放开指定按键

Args:
    handle (HWND): 窗口句柄
    key (str): 按键名
"""
vk_code = get_virtual_keycode(key)
scan_code = MapVirtualKeyW(vk_code, 0)
# https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keyup
wparam = vk_code
lparam = (scan_code << 16) | 0XC0000001
PostMessageW(handle, WM_KEYUP, wparam, lparam)

if name == “main”:
# 需要和目标窗口同一权限,游戏窗口通常是管理员权限
import sys
if not windll.shell32.IsUserAnAdmin():
# 不是管理员就提权
windll.shell32.ShellExecuteW(
None, “runas”, sys.executable, file, None, 1)文章来源地址https://www.toymoban.com/news/detail-453693.html

print('123')

handle = windll.user32.FindWindowW(None, 'Y0000001 皓拓 [铜板300 双面 割 5]《1_36x173 2_36x173》周娇娇 [22091630]78287_BE_Popshelf_Spoolie_Brush_Blister_Card_1.1_OL@Z 300G铜版纸 5-01.png @ 7.38%(位图) *')
#handle = 198222
print('1232')
# 控制角色向前移动两秒
key_down(handle, 'f5')
#time.sleep(2)
key_up(handle, 'f5')
print('1234')

到了这里,关于python 模拟后台点击的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python模拟鼠标点击与实时获取鼠标位置

    鼠标点击会用到pymouse库。 在cmd中运行,使用镜像下载 编译器在运行时可能会报错,会出现No module named win32api问题,这是由于Python是没有自带访问windows系统API的库的,需要下载。 在cmd中运行,使用镜像下载pywin32。 time.sleep(num),num值可以自己进行设置,单位为秒。 程序运行

    2024年02月11日
    浏览(55)
  • Python uiautomation操作微信模拟点击

    Python uiautomation 是一个用于自动化 GUI 测试和操作的库,它可以模拟用户操作来执行各种任务。通过这个库,可以使用Python脚本模拟人工点击,人工操作界面。本文使用 Python uiautomation 进行微信电脑版的操作。 以下是本次实验的版本号。 你需要安装 uiautomation 然后使用 uiauto

    2024年04月12日
    浏览(21)
  • python 实现模拟鼠标点击器 可运行 附源码

    https://pan.baidu.com/s/1GIZPHQnRQqTD5h1Cy70MNQ?pwd=kxzz 一、前言: 对于一些比较肝的游戏,想要使用工具挂机; 对于一些购物时的抢购,使用工具来帮自己点击抢购,解放双手; 甚至当我们使用电脑时,有些情况下会强制跳出一些窗口,影响某些任务的进展,使用这个工具可以帮忙点

    2024年02月11日
    浏览(43)
  • 手机运行python控制手机app,python模拟手机屏幕点击

    这篇文章主要介绍了手机运行python控制手机app,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 有线连接真机,实现真机自动化?实现模拟器自动化?在这里,都能满足你的需求! 什么都不说了,直接

    2024年02月03日
    浏览(48)
  • Python爬虫(二十三)_selenium案例:动态模拟页面点击

    本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 分享一份Python的学习资料,但由于篇幅有限,完整文档可以扫码免费领取!!! 1)Python所有方向的学习路线(新版) 总结的Python爬虫和数据分析等各个方向应该学习的技术栈。 比如说爬虫这一块,很

    2024年02月04日
    浏览(61)
  • Python爬虫技术之Selenium自动化测试及模拟点击页面爬虫最全知识

    Selenium是一套Web网站的程序自动化操作解决方案(比如点击界面按钮,在文本框中输入文字等操作) Selenium的自动化原理如下 3.1 下载selenium库的命令 3.2 下载谷歌浏览器Chrome对应的驱动 驱动库网址:http://chromedriver.storage.googleapis.com/index.html 注意:根据自己的Chrome版本进行选择

    2024年01月16日
    浏览(75)
  • python通过ctypes传参numpy给c语言函数

    gcc -o demo.so -std=c++11 -shared -fPIC demo.c  python3 main.py 概述: 示例实现了numpy数组加上100并通过另外的数组的指针获取返回值。主要过程是 numpy数组转换成c_void_p类型,然后传参给c语言函数,c语言函数中指针强转到需要的数据类型,然后再处理。这样即可改变numpy数组中的数值实

    2024年02月12日
    浏览(41)
  • python3.8 安装 ssl 模块 和 _ctypes 模块

    我在之前给 python3.10 安装 ssl 模块后以为该步骤 “对于 python3.6、python3.8 应该同样适用。” 。今天晚上我尝试给服务器安装一个带 ssl 模块的 python3.8 的时候,照着之前安装 3.10 的方案来,然后失败了-_-||。又折腾了一下,发现 3.8 和 3.10 的配置脚本是有区别的,不能一概而论

    2024年02月12日
    浏览(54)
  • Python 使用 ctypes 调用 C/C++ DLL 动态链接库

    ctypes 有以下优点: Python内建,不需要单独安装 Python可以直接调用C/C++ 动态链接库(.dll 或 .so) 在Python一侧,不需要了解 c/c++ dll 内部的工作方式 提供了 C/C++ 数据类型与Python类型的相互映射,以及转换,包括指针类型。 ctypes 在下列场景可以发挥较大作用 运算量大的操作可以写

    2024年02月06日
    浏览(51)
  • [Python] 如何通过ctypes库来调用C++ 动态库 DLL?

    ctypes是Python的一个外部库,它提供了一种灵活的方式来调用C语言的动态链接库(DLL)或共享库(SO)。通过ctypes,我们可以在Python中直接调用 C语言编写的函数和变量 ,从而实现跨语言的互操作。 ctypes 它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模

    2024年01月19日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包