【Python】基于内存地址获取WPS中ppt的当前播放进度

环境

  • python: 3.12.1

  • Pymen: 1.13.1

  • python-pptx: 0.6.23

  • WPS演示: 12.1.0.16250

实现步骤

环境安装

pip install pymem
pip install python-pptx

获取PPT文件的总页数

这个功能实现比较简单,直接通过python-pptx库即可实现

# 获取 ppt 总页数
def get_ppt_total_page_count(ppt_file:str):
    ppt = Presentation(ppt_file)
    total_page_count = len(ppt.slides)
    return total_page_count

获取PPT当前播放页索引

这个功能相对比较复杂,网上也没有找到相关的博客,基本都是如何提供python去修改ppt的

后来想了想,ppt播放时软件里肯定得记录这个页索引数吧,就想着试试用Cheat Engine这种内存地址数值查找工具找找看,结果还真给我找到了

CE查找PPT当前索引页的临时地址

首先播放PPT,然后打开CE找到 WPS演示 幻灯片放映 这个进程

比如现在播放的是PPT的第一页,那就在输入框中输入0

然后随便切到PPT的任意页,输入该页的索引后点击next scan

这样多重复几次这个操作,直到左侧结果栏中只剩下一个结果

找到PPT当前播放进度的固定地址

右键它点击Find out what accesses this address

弹出窗口后,随便切下PPT的播放进度,注意别把PPT播放完了关掉了

这样弹窗的结果栏中就会出现一些结果,随便找到一个mov命令的结果点击查看结果内容

记住ebx+20的+20,表示内存地址+0x20得到该用于表示PPT当前播放进度的临时变量

这个EBX的地址可以不用记住,复制即可

关闭该弹窗,勾上Hex,然后粘贴上EBX的地址,进行新一轮的查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值