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 ...
随机推荐
- HTML注册页面验证注册信息
在这里主要介绍两种验证方式,一种是点击注册按钮后会提示最上方的出错位置,弹出窗口提示格式不对.另一种是利用鼠标事件,在鼠标进行不同操作时会有不同的click事件. 这两种都是利用javascript, ...
- thread_local变量
thread_local变量是C++ 11新引入的一种存储类型.它会影响变量的存储周期(Storage duration),C++中有4种存储周期: automatic static dynamic ...
- [新手教程]windows 2003 php环境搭建详细教程(转)
对于windows服务器的php环境配置一直是是新人朋友的难题,也难倒了很多高手.这里分享一个新手教程,给那些建站新人使用.本教程来自朋友吴文辉的博客,欢迎大家有时间可以访问他的博客:吴文辉博客htt ...
- 分布式队列 Celery
详情参见: 分布式队列神器 Celery 用户指南(User Guide) 1) Celery-4.1 用户指南: Application(应用) 2) Celery-4.1 用户指南: Task(任 ...
- Python实现SSH连接远程服务器
首先需要安装paramiko模块 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import paramiko ssh = p ...
- Hibernate4.3.5搭建Log4j日志环境
本文记录Hibernate4.3.5搭建Log4j日志环境的过程 1.搞清楚Hibernate4.3.5的日志环境依赖 方法:查看帮助文档 3.5. Logging Important Complet ...
- c++builder 程序升级到c++builder10Seattle
c++builder 程序升级到c++builder10Seattle的一些技巧提示. http://community.embarcadero.com/blogs/entry/migrating-l ...
- eclipse egit(远程仓库)
Git的强大之一体现在远程仓库,Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且 ...
- Python:cmd传参
假如你写了一个文件test.py,你需要三个参数,你运行时: python test.py arg1 arg2 arg3 在test.py中读取这几个参数: import sys print 'Num ...
- 【COCI2012】覆盖字符串
[题目描述] 给出一个长度为N的小写字母串,现在Mirko有M个若干长度为Li字符串.现在Mirko要用这M个字符串去覆盖给出的那个字符串的.覆盖时,必须保证:1.Mirko的字符串不能拆开,旋转:2 ...