将文件扩展名与程序关联

2024-03-19

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

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


为简洁起见,我使用假根密钥。在实践中,替换Hive_Key with 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,其中将包含文件上的上下文菜单项以及该上下文菜单项将调用的程序。与 ProgID 的默认值类似,动词键的默认值是将显示在上下文菜单上的文本。这个的默认值shellkey 具有默认的动词键名称,这是用户双击文件时调用的动词。

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件扩展名与程序关联 的相关文章

  • 为什么使用 System.Threading.Interlocked.Decrement 而不是减号?

    我将一些 C 代码转换为 vb net converter telerik com 将其转换为 i 进入这个 System Math Max System Threading Interlocked Decrement i i 1 所有的花
  • 删除 VB.NET 源代码文件中的所有注释

    Visual Studio 编辑器中是否有宏可以删除 VB NET 源文件中的所有注释 使用菜单编辑 gt 查找和替换 gt 使用正则表达式快速替换 找什么 用 来代替 1 将取代 text comment to text
  • 检测 vb.net 中的浏览器关闭事件

    我的网页如下所示
  • C# vb:S​​ystem.Func 占用多少内存?

    System Func 究竟拥有多少内存 System Func 是 1 行还是 1000 行有什么区别吗 Func是委托类型 一个实例在x86抖动中占用32字节存储 对象头 8 个字节 4 个字节用于 Delegate methodBas
  • 无法设置 PageSetup 类的 PaperSize 属性

    我正在尝试使用 VB NET 打印 Excel 电子表格 但出现错误 无法设置 PageSetup 类的 PaperSize 属性 这是我的代码 Dim oldCI As System Globalization CultureInfo S
  • 无法将值写入密钥\使用管理员帐户在 Windows 7 计算机中安装 SSMS 显示软件

    我在安装SQL Server 2014时出现以下错误 无法将值写入键 SOFTWARE 验证您是否有足够的权限访问该密钥 或联系您的支持人员 当它尝试安装 SSMS 并且我的计算机正在运行 Windows 7 时 就会发生这种情况 为了使其
  • CE 设备读取注册表的哪个分支?

    我的 Windows CE Motorola Symbol 手持设备在 HKEY CURRENT USER 和 HKEY LOCAL MACHINE 下都有名为 Software Microsoft Windows CE Services
  • 尝试关闭 Visual Basic 中所有打开的窗体

    我想要它 所以当单击我的按钮时 我退出我的应用程序 我尝试了一个简单的 for 循环 Private Sub CloseAllToolStripMenuItem Click sender As Object e As EventArgs H
  • FireFox 中的默认表单按钮

    我正在构建一个服务器控件 它将搜索我们的数据库并返回结果 服务器控件包含一个 ASP Panel 我已将面板上的默认按钮设置为等于我的按钮 id 并将表单默认按钮设置为等于我的按钮 id 在面板上 MyPanel DefaultButton
  • Visual Studio 将 1.1 扩展为 1.1000000000000001

    至少对我来说 这是有史以来最奇怪的 Visual Studio 2010 行为 我正在开发 MVC3 项目 我从另一个项目 也包括 VS2010 MVC1 如果重要的话 复制了一行代码 如下所示 target height height 1
  • 按降序对数字进行排序

    我有 20 个文本框 每个都包含一个特定的数字 我希望 textbox1 到 textboxN 的数字按降序排列 如果任何文本框的值为零 那么我想保留该文本框不变 需要 vb net 中的示例代码 用于按降序对元素进行排序 dim arra
  • 将二维数组绑定到数据网格中

    所以我的情况是我想从数据库中的两个字段填充一个二维数组 我在为数组分配数据库字段值时遇到问题 第二个是在数据网格中显示数组 我已经编码了 dgv2 Datasource myArray 但它仍然返回错误消息 这是我的代码 Dim msql
  • 正则表达式 VB.Net 正则表达式.替换

    我正在尝试执行一个简单的正则表达式查找和替换 在字符串中的一些数字后面添加一个制表符 如下所述 From a users 12345 badges To a users 12345 badges 我正在使用以下内容 s regex repl
  • 将文件扩展名与应用程序关联

    我编写了一个编辑特定文件类型的程序 我想为用户提供在启动时将我的应用程序设置为该文件类型的默认编辑器的选项 因为我不需要安装程序 我尝试编写一个可重用的方法 通过向 HKEY CLASSES ROOT 添加一个键来为我关联一个文件 最好在任
  • 使用自定义验证器进行 ASP.Net 字数统计

    我正在处理的 ASP Net 2 0 项目的要求将某个字段限制为最多 10 个单词 不是字符 我当前正在使用带有以下 ServerValidate 方法的 CustomValidator 控件 Protected Sub TenWordsT
  • Windows 注册表中的 DefaultConnectionSettings 值的格式是什么?

    Windows 注册表项 HKCU Software Microsoft Windows CurrentVersion Internet Settings Connections 包含一个名为的二进制值DefaultConnectionSe
  • VB.NET 中的自动递增文本框

    单击按钮后如何增加文本框内容 将其放在按钮单击事件中 Dim int As Integer Integer TryParse TextBox1 Text int TextBox1 Text int 1
  • 如何在 VB.NET 中实现包含结构体参数的 C# 委托?

    给定 C 中的以下委托定义 struct Dummy delegate int ReceiveDummy in Dummy dummy 如何将 VB Net 子程序分配给 ReceiveDummy 类型 以下两个函数定义都会失败 并出现错误
  • asp.net vb 用户控件在调用页面上引发事件

    我正在尝试了解用户控件 我创建了一个具有文本框和按钮的用户控件 我想要做的是 当我单击用户控件中的按钮时 在 aspx 页面中填充标签 我知道我可以在页面上有一个按钮 使用用户控件上的一些属性来获取该信息 但我想知道如何使用用户控件的按钮来
  • 如何使用鼠标拖动和移动winform

    我知道如何通过添加以下代码来 拖动和移动 winform Protected Overrides Sub WndProc ByRef m As Message If m Msg 163 And ClientRectangle Contain

随机推荐

  • 如何检查 Python 引发异常的函数范围?

    我最近发现了 Python 中非常有用的 i 标志 i inspect interactively after running script also PYTHONINSPECT x and force prompts even if st
  • 相当于 De Bruijn LSB,但适用于 MSB

    有谁知道类似于 De Bruijn 的 LSB 但针对 MSB 的算法吗 或者确定 MSB 的最有效方法 我知道 Log 2 Val 会这样做 但我不知道这是否是最有效的方法 我需要它的原因是我需要将小端转换为大端 我知道这个的标准算法 然
  • 如何检查 PyTorch 是否正在使用 GPU?

    如何检查 PyTorch 是否正在使用 GPU 这nvidia smi命令可以检测 GPU 活动 但我想直接从 Python 脚本内部检查它 这些功能应该有助于 gt gt gt import torch gt gt gt torch cu
  • 在批处理和 VBS 混合中使用变量

    This thread https stackoverflow com questions 9074476 is it possible to embed and execute vbscript within a batch file w
  • Boost.Asio安装问题

    我已经使用 bjam install 安装了 boost 库 但是当我编译程序时 include boost asio hpp int main return 0 出现此类错误 tmp ccVR3eeF o In function stat
  • 虚拟化页表的工作原理

    阅读有关虚拟化页表概念的内容 其中部分页表放入虚拟内存中 维基百科 https en wikipedia org wiki Page table Virtualized page table以及 Patterson 和 Hennessy 页
  • ExecutorService,如何等待所有任务完成

    等待所有任务的最简单方法是什么ExecutorService完成 我的任务主要是计算 所以我只想运行大量作业 每个核心一个 现在我的设置如下所示 ExecutorService es Executors newFixedThreadPool
  • 如何将 NSDate 对象设置为午夜?

    我有一个NSDate对象 我想将其设置为任意时间 例如午夜 以便我可以使用timeIntervalSince1970一致检索数据的功能 无需担心时间when对象已创建 我尝试过使用NSCalendar并使用一些 Objective C 方法
  • 同构弦

    给定两个字符串 s 和 t 确定它们是否同构 如果 s 中的字符可以替换得到 t 则两个字符串是同构的 所有出现的字符都必须替换为另一个字符 同时保留字符的顺序 任何两个字符都不能映射到同一个字符 但一个字符可以映射到其自身 例如 给定 e
  • 如何在magento中调用另一个动作?

    是否可以在magento中调用另一个动作 例如 让我们考虑两种操作方法 添加动作 更新操作 调用 addAction 时是否可以实际调用 updateAction 谢谢 巴兰 您可以进行转发 例如 public function addAc
  • Objective-C 中的自动解析库 - [自动 XML/JSON 到对象转换]

    Objective C 中是否有一个我可以在 iPhone 中使用的库 在其中我可以提前告诉库这些标签应该在 xml 文件中出现 然后该库会自动为我解析它并给我一个 NSDictionary 数组作为回报或类似的东西 简而言之 我正在寻找一
  • 为什么本机 python 列表上的 for 循环比 numpy 数组上的 for 循环更快

    我正在阅读介绍 numpy 的章节高性能Python并在我自己的计算机上使用了代码 我无意中用 for 循环运行了 numpy 版本 发现与本机 python 循环相比 结果出奇地慢 代码的简化版本如下 其中我定义了一个值为 0 的二维数组
  • 如何使用 Chrome 扩展程序阻止某些网站?

    我正在为一个项目制作一个简单的 chrome 扩展 我正在制作一个扩展程序来阻止某些 URL 社交媒体等 以使学习更加高效 我不太擅长JS 但我想学习 我有一些想法 也许它可以阻止网站 或者只是在 div 中绘制一些内容来阻止其内容 另外
  • 如何设置PDF页眉的高度?

    有谁知道如何设置生成的pdf中标题的高度
  • x64应用程序访问mdb数据库

    我有一个应用程序需要在x64平台下构建 我需要访问 mdb文件 我所说的访问是指插入 删除或更新数据库 我在使用 Jet OLE db 和 ODBC 驱动程序时遇到问题 对于 OLE db 它显示 Jet Oledb 未注册 驱动程序和应用
  • Haskell 的全功能 CSV 解析器?

    任何人都可以推荐一种解析 CSV 文件的方法 其中包含以下选项 设置单元格 字段分隔符 设置记录结尾 行终止符 为字段设置引号字符 支持 UTF 8 字符串 能够将内存中的 CSV 结构写回文件 我确实尝试过 Text CSV 但它非常简单
  • D3 力向图添加新节点导致 x & y 为 NaN

    当我单击一个节点时 我希望向其中添加一个新节点 它们都应该有标签 我正在尝试构建同义词库可视化 我对 D3 还很陌生 所以如果您需要更详细地解释一些事情 我深表歉意 到目前为止 这是我的代码 var width 960 var height
  • 如何防止在 C# 中手动输入组合框

    我有一个 C 表单 它使用ComboBox 如何防止用户手动输入文本ComboBox in C this comboBoxType Font new System Drawing Font Arial 15 75F this comboBo
  • 未调用 UIManagedDocument saveToURL finishHandler - 错误消息:“不允许读者访问该 URL。”

    我有一个旧的应用程序使用UIManagedDocument与核心数据交互 然而 在 iOS 11 2 可能还有更早的 iOS 11 版本 上saveToURL forSaveOperation completionHandler 方法似乎已
  • 将文件扩展名与程序关联

    我知道怎么做 而且我去过http www codeproject com KB vb VBFileAssociation aspx http www codeproject com KB vb VBFileAssociation aspx前