Windows中与系统关联自己开发的程序(默认打开方式、图标、右击菜单等)
1. 默认打开方式
1.1. 代码支持
- 在Windows下,某个特定后缀名类型的文件,如果要双击时默认用某个程序(比如自己开发的WinForm程序)打开,代码中首先肯定要支持直接根据这个文件进行下一步操作。比如说,如果自己开发的程序是个IDE,那么如果直接打开的这个文件是自定义的项目文件,那么代码就要支持根据这个文件直接启动程序并打开工程;如果这只是个普通文件,那么代码就要支持根据这个文件直接启动程序并打开编辑界面。
- 以WinForm为例,Program.cs启动的Form的构造函数就要支持传递参数并进行处理:
public partial class TestProjectTree : Form
{
public TestProjectTree(string[] para)
{
InitializeComponent();
if (para.Length > 0)
{
string pathC = para[0];//获取打开的文件的路径
//下面就可以自己编写代码使用这个pathC参数了
//FileStream fs = new FileStream(pathC, FileMode.Open, FileAccess.Read);
label1.Text = pathC;
}
}
}
1.2. 修改注册表(代码或安装时,有可能不需要搞一个引用那么麻烦)
- 如果要设置默认打开方式的文件后缀名为.xxx,那么在注册表的HKEY_CLASSES_ROOT下面新建一个项就叫.xxx,然后把它下面的默认的项的值设为"Exec"(可能可以自己定,只要与下一步要建的第一级的项的名称相同即可)
- 然后再在HKEY_CLASSES_ROOT下面新建一个项叫“Exec”(可能可以自己定,只要与上一步建的项的名称相同即可),然后在Exec下面再建一个"shell",然后在shell再建一个"open",然后在open下面再建一个"command",最后把command下面的默认的项的值设为"D:\vsworkspace\TestWinform\TestWinform\bin\Debug\TestWinform.exe" "%1" (其中前一个双引号中是程序路径,后一个双引号中代表双击的文件的全路径名)
- 如果手动设置过该后缀名的文件的默认打开方式,那么Windows会自动以类似的方式生成固定名称的注册表项(xxx_auto_file),因此安装程序需要以同样的方式覆盖掉之前用户可能的设置,或者在安装时先删掉系统默认的打开方式注册表项,然后再添加自己定义的。
- 貌似如果用户手动设置过的话,还会有其他残留项,比如多个FileExts、RecentDocs等。
- /HKEY_CLASSES_ROOT/Applications/xxx.exe会显示在打开方式软件列表中。
2. 在右击菜单中增加自己的程序(空白处的右击菜单)
- 参考百度-->>增加注册表:HKEY_CLASSES_ROOT->Directory->Background->shell->XXX->command,最后一级command的默认项的值为D:\vsworkspace\TestWinform\TestWinform\bin\Debug\TestWinform.exe,即程序路径,上一级的XXX为在右击菜单上显示的名称。
3. 在右击菜单中增加自己的程序(非空白)
- .xxx->shell->XXX->command下配置即可
4. 在右击菜单中增加自己的程序(选中多个文件时)
Windows中与系统关联自己开发的程序(默认打开方式、图标、右击菜单等)的更多相关文章
- win10关于后缀名无法关联相应程序默认打开方式的处理方法
系统:win10 专业版 现象:以".chm"文件为例,每次都要重新选择一次打开方式才能打开chm文件,无法设置默认打开方式. 解决方法: 1.win+r打开运行,输入regedi ...
- ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序
基于Visual Studio 2015,你可以: 方便的管理前端包,如jQuery, Bootstrap, 或Angular. 自动运行任务,如LESS.JavaScript压缩.JSLint.Ja ...
- 浅谈linux系统中pdf文件的默认打开方式
atril.gimp和evince,三者均可以打开application/pdf格式文件.gimp为一款图像处理软件:atril为mate环境下常用的文档查看器:evince为gnome环境下常用的文 ...
- 删除win10系统下文件默认打开方式的关联-win10配置
现象 文件默认打开方式错误 链接到老的打开软件 无法图形化重定义关联软件 文件图标关联异常 1. 打开注册表编辑器 win + R regedit 2. 修改注册表 找到以下注册表路径,找到指定的文件 ...
- 20160303 - 升级 Windows 10 版本 1511 后,文件夹默认打开方式为 cmd 的修复
问题描述:升级 Windows 10 版本 1511 (OS 内部版本 10586.122)后,文件夹的默认打开方式变成了cmd.双击任何一个文件夹,显示相关的提示错误信息如下: [Window Ti ...
- Ubuntu中改变文件的默认打开方式
其实最简单的方法是右键,在属性中修改,不过这样做没啥意义. ubuntu中与文件的打开方式相关的配置文件有四个: /etc/gnome/defaults.list 这是全局配置文件 /usr/shar ...
- 在Eclipse中设置文件的默认打开方式
在Eclipse中,我们可以设置jsp.xml.js.sql等文件默认打开方式: ①.打开配置选项 ②.找到文件设置 ③.选中我们要设置的文件,默认即可:
- Windows 下 Sublime Text 默认打开方式问题解决办法
Sublime Text 2 是很受ACMer喜爱的文本编辑器 但是绿色版删除后无法设置为默认打开方式...而且网上也没有给出明确的解决办法 注册表的解决办法: 删除 HKEY_CURRENT_USE ...
- Ubuntu 中改变文件的默认打开方式(转)
源自:Ubuntu 中改变文件的默认打开方式 1. 相关配置文件 全局配置 /etc/gnome/defaults.list /usr/share/applications/mimeinfo.cac ...
随机推荐
- linux平台总线驱动设备模型之点亮LED
这一节里,我们来使用平台驱动设备这一套架构来实现我们之前使用简单的字符设备驱动点亮LED,这里并无实际意义,只是告诉大家如果编写平台总线驱动设备. 问:如何编写平台总线驱动设备这一套架构的设备驱动? ...
- ServiceWorker入门介绍一
Service Worker只有安装后才会存在.而且因为他的逻辑是由开发者编写的 JavaScript 而不是浏览器控制的. Service Worker 拥有和缓存相关的 API ,这让他可以储存资 ...
- selenium webdriver 的事件处理
package www.zr.com; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; imp ...
- String类的内存分配
首先说一下Java内存分配.物理的内存是线性结构,并不存在拥有不同功能的不同区域,编译器(或者JVM)为了更高效地处理数据,会用不同的算法把内存分为各种区域,不同的区域拥有各自的特性,Java中,内存 ...
- wince驱动开发入门
因为课题前期调研没做好,用的CPU板卡和数据采集卡来自两个部门.加上买的是裸板,自己定制的OS,技术支持不爱搭理.所以给的AI板卡的驱动一直装不上,自己在郁闷中寻找答案,就扎进了wince驱动的知识库 ...
- Python常用算法
本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机 ...
- 修改Tomcat可支持get传参方式的url长度,get形式
maxHttpHeaderSize="8192"加在 <Connector port="8081" maxHttpHeaderSize="314 ...
- Linux中IO监控命令的使用分析
一篇不错的有关linux io监控命令的介绍和使用. 1.系统级IO监控 iostat iostat -xdm 1 # 个人习惯 %util 代表磁盘繁忙程度.100% 表示磁盘 ...
- jQuery基础教程-第8章-001Adding new global functions
一. 1.To add a function to the jQuery namespace, we can just assign the new function asa property of ...
- 用js获取cookie
//获取cookiefunction cookie_email(cookie_name){ var cookiestr = document.cookie; if (cookiestr.length ...