在Windows 8中,用户select为给定文档types打开哪个应用程序似乎保留在
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<extension>\UserChoice
对于我的机器上的PDF,这包含:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice] "Hash"="xh8KhPWlZL0=" "ProgId"="AcroExch.Document"
然而在另一台机器上,哈希是不同的。 什么是散列,有什么办法可以创build一个.reg文件,可以应用到另一台机器来设置此偏好?
微软决定在Windows 8(可能出于安全的原因),用户应该只能通过内置的GUI设置默认的程序。 即通过设计,你不应该能够在脚本或编程设置默认处理程序。
哈希值用于证明UserChoice ProgId值是由用户设置的,而不是通过任何其他方式。 只要Microsoft保留生成Hash的算法,以及使用Hash(一种秘密)验证ProgId的机制,就可以工作。
理论上你可以找出设置哈希(也可能是其他隐藏的操作系统设置)的秘密,但是你不能保证它的可靠性; 例如,下一个Windows Update可能会破坏您的方法。 您可能只需要适应变化,并使用微软内置到操作系统的新方法。