- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道怎么做,我去过http://www.codeproject.com/KB/vb/VBFileAssociation.aspx前。我的问题是这样做有什么作用,是否有可能逆转它?如果您不知道您的程序将在哪里,而您现在只是在测试它,该怎么办?有什么方法可以“找到”您的程序,或者有什么简单的方法可以编辑它的打开位置?就此而言,是否可以判断文件是否已经关联,尝试重新关联是否有问题?最后,如何设置它使用的 .ico 文件?
感谢您的帮助,我对注册表几乎一无所知,这让我很困惑,哈哈...
最佳答案
为简洁起见,我使用的是假根 key 。在实践中,替换 Hive_Key
与 HKEY_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/
我是一名优秀的程序员,十分优秀!