我正在某些系统上部署小型转换工具,并希望用户能够通过右键单击Open with
菜单运行它。但我不想更改用户与此文件类型关联的默认程序。如何在不使用默认程序的情况下将文件扩展名关联到程序
很容易将文件扩展名/类型关联到程序,但是如何在不改变默认程序的情况下(当然是以编程方式)执行它?
我正在某些系统上部署小型转换工具,并希望用户能够通过右键单击Open with
菜单运行它。但我不想更改用户与此文件类型关联的默认程序。如何在不使用默认程序的情况下将文件扩展名关联到程序
很容易将文件扩展名/类型关联到程序,但是如何在不改变默认程序的情况下(当然是以编程方式)执行它?
设置以下键为我工作:
key HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/App Paths/<progname>: "" = <appPath>
key HKCR/Applications/<progname>/SupportedTypes: <fileExt> = ""
key HKCR/<fileExt>: "" = <progID>
key HKCR/<progID>/OpenWithList/<progName>
key HKCR/<fileExt>/OpenWithList/<progName>
key HKCR/SystemFileAssociations/<fileExt>/OpenWithList/<progName>
delete key and subkey at HKCU/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/fileExts/<fileExt>
您可以通过在Windows注册表中添加其添加脚本的上下文菜单(以下公开赛):
HKEY_CLASSES_ROOT\your_class\Shell
(Default)
值并在上下文菜单中插入要显示的文本Command
的新密钥键(Default)
值并插入要执行的命令我已经实现了正确的文件ASSO CIATION使用这些cmd命令。 (只是一个例子):
REG ADD "HKEY_CLASSES_ROOT\Applications\notepad++.exe\shell\open\command" /v @ /t REG_SZ /d "\"C:\\Program Files\\Noteepad++\\notepad++.exe\" \"%1\"" /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt" /v "Application" /t REG_SZ /d "notepad++.exe" /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithList" /v "g" /t REG_SZ /d "notepad++.exe" /f
assoc .txt=MyCustomType
ftype MyCustomType="C:\Program Files\Noteepad++\notepad++.exe" "%1"
(最好是把他们在.bat文件)
这也是我以前试过,但对我来说这是不够的;默认关联是在Explorer中手工完成的,由于某种原因,它阻止了这个文件的处理。 – CharlesB 2010-06-02 12:40:03