我知道要怎么做,我一直在 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子项来完成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top