8

我在某些系统上部署了一个小型转换工具,并希望用户能够从右键Open with菜单中运行它。但我不想更改用户与此文件类型关联的默认程序。

将文件扩展名/类型与程序相关联很容易,但是如何在不更改默认程序的情况下(当然以编程方式)做到这一点?

4

5 回答 5

5

设置以下键对我有用:

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>
于 2010-06-06T11:12:13.340 回答
1

您可以通过将脚本添加到 Windows 注册表中来将脚本添加到上下文菜单(打开方式下方):

  1. 打开注册表
  2. HKEY_CLASSES_ROOT\your_class\Shell
  3. 添加新密钥并为其命名
  4. 编辑(Default)此键的值并在上下文菜单中插入要显示的文本
  5. 添加一个以Command新创建的密钥命名的新密钥
  6. 编辑(Default)此键的值并插入要执行的命令
  7. 享受!
于 2010-06-02T08:47:14.210 回答
0

在“文件类型”窗口对话框中,您可以单击文件类型上的“高级”,然后创建与您的应用程序相关的自定义操作。

可能您还可以找到一种以编程方式执行此操作的方法,或者至少创建一个具有等效注册表选项的 .REG 文件。

于 2010-06-02T08:47:56.640 回答
0

我已经使用这些 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 文件中)

于 2013-07-05T10:08:38.693 回答
-2

这是 XP 向文件夹添加命令提示符选项的工作示例。创建一个 .reg 文件

Windows 注册表编辑器版本 5.00

[HKEY_CLASSES_ROOT\Directory\shell\命令提示符]

[HKEY_CLASSES_ROOT\Directory\shell\命令提示符\command] @="cmd.exe /k cd \"%1\""

于 2010-06-02T08:51:57.100 回答