gpt4 book ai didi

vb.net - 将文件扩展名与程序相关联

转载 作者:行者123 更新时间:2023-12-04 09:56:52 28 4
gpt4 key购买 nike

我知道怎么做,我去过http://www.codeproject.com/KB/vb/VBFileAssociation.aspx前。我的问题是这样做有什么作用,是否有可能逆转它?如果您不知道您的程序将在哪里,而您现在只是在测试它,该怎么办?有什么方法可以“找到”您的程序,或者有什么简单的方法可以编辑它的打开位置?就此而言,是否可以判断文件是否已经关联,尝试重新关联是否有问题?最后,如何设置它使用的 .ico 文件?

感谢您的帮助,我对注册表几乎一无所知,这让我很困惑,哈哈...

最佳答案

为简洁起见,我使用的是假根 key 。在实践中,替换 Hive_KeyHKEY_LOCAL_MACHINE对于系统默认设置,或 HKEY_CURRENT_USER用于每个用户的设置。允许存在这些键中的任何一个,或两者都存在。如果它们都存在,则 HKCU键优先。

要将扩展名与文件类型相关联,您需要通过设置默认键值来为所选文件类型设置扩展名键 ( Hive_Key\Software\Classes\.ext ) 的默认值。

在文件类型中可以找到实际启动的程序以及其他文件类型的详细信息。文件类型由所谓的 ProgID 标记。 (“Programmatic Identifier”的缩写,这是一个更容易阅读的类标识符版本)。 ProgID 键位于 Hive_Key\Software\Classes ,此插图的示例值可能是 ext_auto_key .

ProgID 可能有一个默认值,它将是资源管理器中文件类型的友好描述(例如,“Microsoft Word 文档”)。您需要确保选择用户易于理解的描述。

ProgID 可能有一个子键,DefaultIcon ,这是存储文件类型图标的地方。该图标路径是该键的默认值。

ProgID 键可能是一个子键,shell ,它将包含文件上的上下文菜单项,以及该上下文菜单项将调用的程序。与 ProgID 的默认值类似,动词键的默认值是将显示在上下文菜单上的文本。这个shell的默认值key 具有默认动词键名,即用户双击文件时调用的动词。

这些上下文菜单项是 Verbs .对于我们的示例,使用记事本打开文件的动词如下所示:Hive_Key\Software\Classes\ext_auto_file\shell\open\command默认值 notepad.exe %1 .

这是您放置程序路径的地方。如果您的程序在系统 PATH 中(如 notepad.exe),则无需指定完整路径。在更有可能的情况下,您需要指定 exe 的路径。出于测试目的,您可以将其设置为您的构建目录。

您询问了如何检查这些东西,这可以通过首先检查扩展键的默认值以获取 ProgID,然后检查 shell 来完成。 ProgID 键的子键以获取默认动词,然后检查 \shell\verb\command获取启动程序的路径。

打开regedit.exe可能会有启发并浏览其他文件类型的注册表项,以更好地了解它是如何工作的。

此外,如果特定扩展程序不受控制面板中设置为默认(默认程序)的程序的控制,则上述所有内容均有效。您可以通过检查 key HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice 是否存在来检查此状态。 .如果是,您将需要在您的自定义生效之前撤销默认程序控制。这可以通过删除 UserChoice 来完成。子键。

关于vb.net - 将文件扩展名与程序相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1556853/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com