摘要:本文给出了一段快速遍历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 上传