关联文件扩展名与程序
-
21-09-2019 - |
题
我知道要怎么做,我一直在 HTTP:// WWW。 codeproject.com/KB/vb/VBFileAssociation.aspx 之前。我的问题是关于做什么做的,是有可能扭转这种局面?如果你不知道什么是你的程序将是,你只是测试它呢?有没有办法为它去“找”你的程序,或者一个简单的方法来编辑它打开在哪里?对于这个问题,有没有可能告诉我们,如果文件已经被相关的,是试图重新关联的问题吗?最后,你怎么能设置.ico文件,它使用?
感谢您的帮助,我几乎一无所知注册表和它混淆了我笑...
解决方案
为简单起见,我使用的是假根密钥。在实践中,与Hive_Key
为系统默认设置,或HKEY_LOCAL_MACHINE
为每个用户设置更换HKEY_CURRENT_USER
。无论这些键都不允许存在,或两者兼而有之。如果它们都存在,则HKCU
键优先。
要与文件类型的扩展名相关联,则需要,通过设定缺省密钥值来设置扩展密钥(Hive_Key\Software\Classes\.ext
)与所选择的文件类型的默认值。
发起实际的程序,以及其他文件类型的详细信息,在文件类型中找到。文件类型通过被称为ProgID
(简称“编程标识符”,这是一种更容易可读版本类别标识符的)指出。的ProgID密钥在Hive_Key\Software\Classes
发现,对于该图示的示例值可被ext_auto_key
。
的ProgID可以具有默认值,这将是该文件类型的资源管理器中的友好描述(如“Microsoft Word文档”)。它是由你来确保你选择一个描述这对用户容易理解的。
的ProgID可具有一个子项,DefaultIcon
,它是文件类型图标的存储位置。该图标路径是关键的默认值。
在ProgID项可以一个子项,shell
,其中将包含在文件中的上下文菜单项,并且该上下文菜单项将调用该程序。该进程id,动词键的默认值的默认值是相似的,这将显示上下文菜单上的文字。此shell
密钥的缺省值具有缺省动词的项名称,这是调用动词当用户双击文件。
这些上下文菜单项Verbs
。在本例中,打开用记事本文件的动词应该是这样的:
Hive_Key\Software\Classes\ext_auto_file\shell\open\command
与默认值notepad.exe %1
。
这是你会把你的程序路径。如果你的程序是在系统路径,如NOTEPAD.EXE是,你不这样做的需要的指定的完整路径。在更可能的情况下,你需要指定到你的exe文件的路径。出于测试目的,你可以将其设置为您的构建目录。
您询问该如何检查的东西,而这可以通过第一检查延长密钥的缺省值来获得进程id,然后检查ProgID项的shell
子项获得默认的动词,然后检查\shell\verb\command
得到完成路径发起的程序。
有可能会启发打开regedit.exe
和浏览这些注册表项的其他文件类型,以获得它是如何工作的一个更好的主意。
此外,以上是所有有效如果特定扩展名不是下在控制面板中设置的默认(默认程序)的程序的控制。您可以通过按键HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice
存在的检查来检查这个状态。如果是,则需要取消默认程序控制之前,您的自定义才能生效。这可以通过删除UserChoice
子项来完成。