一键列出Adobe Acrobat 最近打开过的文件

查看 54|回复 1
作者:sdy623   
Python新手 还请多多包含。
摘要:本文给出了一段快速遍历Acrobat “最近打开过的pdf” 记录的Python 代码,供大家分享。
缘起:
最近由于Acrobat出现问题,不得不重装Acrobat软件,导致Acrobat软件中“最近打开过的pdf”记录(下称记录)丢失。为了避免重装造成不便,我打算查找记录这种信息的机制。


image.png (50.95 KB, 下载次数: 0)
下载附件
2023-3-20 19:37 上传

猜想:
推测数据在注册表里面,使用RegWorkShop,将某文件作为关键字,对注册表进行搜索,果然搜索到了在注册表中记录的存放位置。
后对其进行导出备份,卸载软件后再导入注册表,发现记录成功还原。由此可以说明此记录存放于 `HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Acrobat\DC\AVGeneral\cRecentFiles` 目录下


image.png (16.65 KB, 下载次数: 0)
下载附件
2023-3-20 19:45 上传



image.png (25.78 KB, 下载次数: 0)
下载附件
2023-3-20 19:45 上传

最后是遍历目录的Python代码
[Python] 纯文本查看 复制代码import winreg
def traverse_reg_key(key, depth=0):
    # 打开当前键
    hkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key, 0, winreg.KEY_READ)
    # 获取子键数量和值数量
    subkey_count, value_count, last_modified = winreg.QueryInfoKey(hkey)
    # 遍历子键
    for i in range(subkey_count):
        subkey_name = winreg.EnumKey(hkey, i)
        subkey_path = f"{key}\\{subkey_name}"
        traverse_reg_key(subkey_path, depth + 1)
    # 遍历值
    for i in range(value_count):
        value_name, value_data, value_type = winreg.EnumValue(hkey, i)
        # 如果值名为'tFileName',则打印值的数据和类型
        if value_name == 'tFileName':
            print(' ' * (depth+1), '-', value_name, ':', value_data)
    # 关闭当前键
# 遍历对应键值
traverse_reg_key(r'SOFTWARE\Adobe\Adobe Acrobat\DC\AVGeneral\cRecentFiles')


image.png (47.59 KB, 下载次数: 0)
下载附件
2023-3-20 19:49 上传

遍历, 下载次数

zxbbddp   

大佬厉害厉害,终于知道怎么列出最近打开的文件了,谢谢大佬!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部