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 ...
随机推荐
- Java-Runoob:Java 变量类型
ylbtech-Java-Runoob:Java 变量类型 1.返回顶部 1. Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifie ...
- php代码中临时开启错误调试
对php.ini 中参数的设置 也可用在php代码中完成. 调用:调用ini_set()函数 //开启php.ini中的display_errors指令 ini_set('display_errors ...
- usb设备驱动程序
韦老师写的,供参考 /* * drivers\hid\usbhid\usbmouse.c */ #include <linux/kernel.h> #include <linux ...
- 路边拾遗之其他模块(struct/csv/xlwt/smtp)
struct模块 最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的 ...
- nodejs中的util.inspect.js
util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出.它至少接受一个参数 object,即要 ...
- dd命令的高级应用
dd是Linux上的一个常用的命令.例如:dd if=/1.txt of=/tmp/2.txt (其中, if代表input file:of代表output file, 命令的结果就是将根目录 ...
- day2-心得
模块sys和os #!/usr/bin/env python # -*- coding: utf-8 -*- import sys sys.path #打印环境变量 print(sys.argv) # ...
- 图灵机器人,web录音实现自动化交互问答
一.图灵机器人 介绍 图灵机器人 是以语义技术为核心驱动力的人工智能公司,致力于“让机器理解世界”,产品服务包括机器人开放平台.机器人OS和场景方案. 官方地址为: http://www.tuling ...
- C# XML 文件中的空格值问题
C# XML 文件中的空格值问题 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-15 近期正在写我的简易标记文件格式的程序, ...
- NMS:Non-maximum Suppression学习笔记
非极大值抑制可看成一种局部极大值搜索,这里的局部极大值要比他的邻域值都要大.这里的邻域表示有两个参数:维度和n-邻域.维度有1-D,2-D,3-D...:至于n值根据具体情况设置.举个例子:一维的情况 ...