我的客户正在某些工作站中用OpenOffice替换MS Office.我的程序使用.xml扩展名(使用开放格式)将文件导出到Excel,并使用当前关联的程序打开它(使用ShellExecute)
问题是OpenOffice没有注册与之关联的.xml扩展名.
手动关联工作正常,但我想制作一个.reg或其他东西来轻松更改设置.
我正在PC中查看已经进行了更改的注册表,但是
"HKEY_CLASSES_ROOT\.xml"
key没有引用OpenOffice的任何内容.
协会存储在哪里?如何制作脚本来完成工作?
真实关联存储在"HKEY_CLASSES_ROOT\.xml"
指向的键中.
在我的机器上,该键的默认值表示"xmlfile"
,很可能是您的相同.
那我们去吧"HKEY_CLASSES_ROOT\xmlfile"
.在那里,您可以看到(并更改)将用于启动该类型文件的命令:
HKEY_CLASSES_ROOT\xmlfile\shell\open\command
Windows使用这种重定向将多个文件扩展名映射到相同的文件类型,从而映射到同一个应用程序.
在"HKEY_CLASSES_ROOT\xmlfile\shell"
下面有多个子键,类似于你可以对文件做的"动词".同样,"shell"
如果双击文件,键的默认值将决定使用这些谓词中的哪一个.就我而言,这是"open"
.
结论:
有了这些知识,创建关联脚本的最简单方法是使用regedit导出包含该更改的.reg文件,并通过双击或将其应用于目标计算机:
regedit /s new_xml_association.reg
或者(如果您使用的是XP或更高版本且知道自己做了什么)用以下内容覆盖当前值:
reg add "HKEY_CLASSES_ROOT\xmlfile\shell\open\command" /ve /d "path\to\program %1"
无论如何,reg add/?
建议深入了解命令.第一种解决方案更安全.