在win程序中,某种类型的文件可以有多种打开方式,如媒体文件支持多种播放器打开

右键打开方式的实现是通过写注册表实现的

下面以VLC程序为例

1、注册后缀类型

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VLC.3g2

可以看到VLC支持很多文件类型,该项的名字可以自己定

以3g2格式为例,展开注册表

DefaultIcon:显示的图标,key为默认值,值为程序路径,注意后面有,0,0表示使用程序的图标

Command:启动的命令,key为默认值,值为启动程序加参数,其中%1为开发的文件路径

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VLC.3g2\shell\Open\command

2、在 默认程序中 注册 VLC 程序

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\VLC\Capabilities

Capabilities项支持以下值

类型 含义
ApplicationDescription REG_SZ或REG_EXPAND_SZ “必需”。 若要使用户能够做出明智的默认分配选择,应用程序必须提供描述应用程序功能的字符串。 尽管前面的 Contoso 示例直接将说明分配给 ApplicationDescription 值,但应用程序通常提供描述作为嵌入在.dll文件中的资源,以方便本地化。 如果未提供 ApplicationDescription,则应用程序不会显示在潜在的默认程序的 UI 列表中。
ApplicationName REG_SZ或REG_EXPAND_SZ 可选。 程序显示在默认程序 UI 中的名称。 如果应用程序未提供此数据,则 UI 中使用与应用程序第一个注册的 ProgID 关联的可执行程序的名称。 ApplicationName 必须始终匹配 在 RegisteredApplications 下注册的名称。 如果希望不同的应用程序类型(例如浏览器和电子邮件客户端)指向同一可执行文件,而应用程序类型显示为不同的名称,则可以使用 ApplicationName。
Hidden REG_DWORD 可选。 将此值设置为 1,以从 “设置默认程序 ”对话框中的程序列表中取消应用程序。 如果此值为 0 或不存在,则应用程序通常显示在列表中。
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\VLC\Capabilities\FileAssociations

FileAssociations包含支持的后缀,键为后缀,值为上一步自定义的后缀类型

3、注册 VLC 默认程序 注册的位置

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications

key为VLC,值为上一步注册表的路径

完成以上的三步的注册表就能实现右键打开方式的程序启动,除此之外还实现了默认程序的选择,这几步操作只是增加打开方式和默认应用的选项,不会强制更改程序的默认启动方式

以上所有的注册表信息都是在HKEY_LOCAL_MACHINE,该位置写注册表需要管理员权限,使用程序写的时候要注意这一点,一般可以通过安装程序进行写,安装程序正常都是有权限的

4、名称

需要另外注意的是,打开方式显示的程序名称,以VLC为例,它的名称为VLC media player,这个名称是从程序信息中读取的,即查看文件属性的信息,如果程序信息没有,则使用的是程序的文件名称

参考:默认程序 - Win32 apps | Microsoft Learn

Win右键打开方式启动相关推荐

  1. 删除鼠标右键打开方式其他程序图标

    很久以来,我一直被一个小问题困扰.就是鼠标右键打开方式上面的程序列表.有这样一个实例,我的电脑里面有两个不同版本的fireworks,一个老的8.0的版本,一个新的cs3版本,当然都是绿色版本.当我有 ...

  2. ubuntu清除无效的右键打开方式

    为什么80%的码农都做不了架构师?>>>    今天安装了几个程序又将它们删除了之后发现了一个比较严重的后遗症,在相关文件右键打开方式中出现了许多实际已经不存在的文件打开程序名.想了 ...

  3. 电脑右键“打开方式”不见了怎样恢复

    电脑总会有一些小问题,在知道回答一个网友问题,他误删了注册表中的"Open With"这一项,导致右键菜单中没有了"打开方式"这一项,尤其是在查看图片时,无法使 ...

  4. stm32cubemx打开头文件路径错误_prt文件右键打开方式没有NX软件的解决方案

     提示:点击上方"NX网"↑ 免费订阅 关注老叶 1 网友求助 老叶,我prt文件的打开方式里面没有UG,按照你的方法:选择ugs_router.exe也没用,会出现Router ...

  5. Notepad++添加右键打开方式

    安装免安装版本的Notepad++,虽然省了安装的事,但是打开文件的时候很麻烦,每次都靠拖动文件到notepad++上,很恶心~ 其实想把notepad++添加到右键打开方式上,需要添加注册表: 如下 ...

  6. 右键打开方式添加应用程序无法设置

    2019独角兽企业重金招聘Python工程师标准>>> 针对某些绿色软件包,当我们移动软件包的位置时,再次设置默认打开方式会出现无法设置的情况. ①选择要设置的文件->右击-& ...

  7. Windows怎么删除多余的右键打开方式

    参考资料: https://product.pconline.com.cn/itbk/software/dnyw/1803/10961852.html WPS虽然是国产的老牌软件,但是还是流氓了一点, ...

  8. WIN11右键打开方式没有记事本,记事本无法使用问题

    背景: 个人手欠把记事本卸载了,然后又安装了,结果记事本可以打开,但是应用里面没有,右击打开方式也没有!!(检索过程发现很多人人用不了是因为升级W11) 问题: 1.如题,右击打开方式里没有记事本选项 ...

  9. 计算机只能用右键打开方式,电脑所有的程序双击打开的都是属性,必须右键打开才可以,该怎么处理...

    我想你可能中了rose.exe病毒了,我深受其害,不过我已经把毒杀死了呵呵! 中毒症状: 1.在系统中占用大量cpu资源. 2.在每个分区下建立rose.exe autorun.inf 2个文件,双击 ...

最新文章

  1. silverlight学习布局之:布局stackpanel
  2. 某系统响应时间慢TPS低性能瓶颈调优过程
  3. 关于mysql中truncate
  4. 03005_SQL查询语句
  5. IDEA中无法识别servlet类或找不到javax.servlet.*
  6. UVA - 11491 Erasing and Winning(奖品的价值)(贪心)
  7. 452 Minimum Number of Arrows to Burst Balloons
  8. 免费开放阅读 | 数据库管理系统的事务原理(上)
  9. C++ 内存基本构件new/delete的意义、运用方式以及重载方式
  10. MediaWiki初探:安装及使用入门
  11. 【kafka】kafka 控制台 消费 ip 却找 域名 报错 Can‘t resolve address UnresolvedAddressException
  12. php修改linux文件权限设置,linux怎么给文件设置权限
  13. win10计算器_喜欢 Win10 计算器?现在各个平台都能拥有!
  14. 值得收藏的JavaScript代码
  15. iOS CNContactStore 与AddressBook
  16. BMP390高精度压力传感器数据读取与处理(基于STM32)
  17. 苹果搜索广告ASA“保姆级”开户教程来袭!拿来吧你!
  18. 单周期CPU设计(Verilog)
  19. Telegraf 简单使用介绍
  20. 2019年,4亿行代码背后的故事

热门文章

  1. parentElement:返回当前元素的父元素节点(IE不兼容)、children:只返回当前元素的元素子节点、childElementCount、firstElementChild、......
  2. ntohs, ntohl, htons,htonl对比详解
  3. 六级核心词汇(31~60)
  4. 基于华为eNSP的计算机网络实验(端口VLAN划分,跨以太网交换机的VLAN扩展)
  5. 设计模式-- 门面模式
  6. 安装卡巴斯基个人网络版KIS 7.0之后的蓝屏解决方案 1
  7. Yaw Pitch Roll的变换顺序问题
  8. git 命令查看分支的创建者是谁
  9. vsto 启用 禁用加载项_新的Outlook VSTO加载项:如何禁用Outlook 2007中的全部答复和转发...
  10. 互联网安全---DDOS攻击