0

是否有任何命令可以让我发现用户已选择特定程序(例如 Adob​​e reader/Adobe acrobat)作为 Windows 中特定文件扩展名(例如 .pdf)的默认程序?

进一步来说:

  • 如果我从文件属性adobe reader中选择默认值PDF viewer
  • 字符串viewer1 = "Command .pdf"(在命令提示符下运行)
  • 然后我从文件属性更改为 acrobat → 更改默认程序
  • 字符串viewer2 = "Command .pdf"(在命令提示符下运行)

所以,观众1!=观众2

我正在使用 Java swing,所以如果有任何库或方法可以找到选择为 .pdf 文件的默认程序,那对我也有帮助。

是否存在任何注册表项,用于存储特定文件扩展名 (.pdf) 的默认程序路径?

4

2 回答 2

1

已编辑

好的,所以我在这里错过了一部分。它由两个命令组成。

  1. assoc获取与扩展名的文件类型关联,例如.jpg=jpegimage
  2. ftype获取默认处理程序ftype jpegimage

希望有帮助。我想你可以通过管道传输这两个,但我不知道在 Windows 中是如何完成的。

于 2013-05-21T04:39:55.263 回答
1

与给定扩展关联的默认命令可以这样确定:

for /F "tokens=2 delims==" %a in ('assoc .pdf') do ftype %a

Change %a to %%a if you want to use this in a batch file.

A manual override of the associated command via the file's properties, however, seems to be stored elsewhere (in the Progid value of the key HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice to be specific), so it won't be detected by assoc. You can read it from the registry like this:

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice /v Progid
于 2013-05-21T17:37:16.183 回答