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中与系统关联自己开发的程序(默认打开方式、图标、右击菜单等)的更多相关文章

  1. win10关于后缀名无法关联相应程序默认打开方式的处理方法

    系统:win10 专业版 现象:以".chm"文件为例,每次都要重新选择一次打开方式才能打开chm文件,无法设置默认打开方式. 解决方法: 1.win+r打开运行,输入regedi ...

  2. ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序

    基于Visual Studio 2015,你可以: 方便的管理前端包,如jQuery, Bootstrap, 或Angular. 自动运行任务,如LESS.JavaScript压缩.JSLint.Ja ...

  3. 浅谈linux系统中pdf文件的默认打开方式

    atril.gimp和evince,三者均可以打开application/pdf格式文件.gimp为一款图像处理软件:atril为mate环境下常用的文档查看器:evince为gnome环境下常用的文 ...

  4. 删除win10系统下文件默认打开方式的关联-win10配置

    现象 文件默认打开方式错误 链接到老的打开软件 无法图形化重定义关联软件 文件图标关联异常 1. 打开注册表编辑器 win + R regedit 2. 修改注册表 找到以下注册表路径,找到指定的文件 ...

  5. 20160303 - 升级 Windows 10 版本 1511 后,文件夹默认打开方式为 cmd 的修复

    问题描述:升级 Windows 10 版本 1511 (OS 内部版本 10586.122)后,文件夹的默认打开方式变成了cmd.双击任何一个文件夹,显示相关的提示错误信息如下: [Window Ti ...

  6. Ubuntu中改变文件的默认打开方式

    其实最简单的方法是右键,在属性中修改,不过这样做没啥意义. ubuntu中与文件的打开方式相关的配置文件有四个: /etc/gnome/defaults.list 这是全局配置文件 /usr/shar ...

  7. 在Eclipse中设置文件的默认打开方式

    在Eclipse中,我们可以设置jsp.xml.js.sql等文件默认打开方式: ①.打开配置选项 ②.找到文件设置 ③.选中我们要设置的文件,默认即可:

  8. Windows 下 Sublime Text 默认打开方式问题解决办法

    Sublime Text 2 是很受ACMer喜爱的文本编辑器 但是绿色版删除后无法设置为默认打开方式...而且网上也没有给出明确的解决办法 注册表的解决办法: 删除 HKEY_CURRENT_USE ...

  9. Ubuntu 中改变文件的默认打开方式(转)

     源自:Ubuntu 中改变文件的默认打开方式 1. 相关配置文件 全局配置 /etc/gnome/defaults.list /usr/share/applications/mimeinfo.cac ...

随机推荐

  1. cp -f 还是提示是否覆盖

    新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的. 把a目录下的文件复制到b目录 以下是代码片段: cp –r a/* b 执行上面的命令时, ...

  2. 使用QuartZ.net来做定时计划任务 ; 值不能为 null。 参数名: assemblyString

    1. 当异常的时候, 发现需要的类名, 没有取到, 然后就发生异常了 2. 分析: 业务层调用数据层, 数据层去掉配置的时候, 发现配置文件中根本就没有配置, 这个时候使用反射来取, 肯定是拿不到的, ...

  3. Three.js导入gltf模型和动画

    核心代码 复杂的3D模型一般都是用第三方建模工具生成,然后加载到three中 three官方推荐使用gltf格式的文件,代表编辑器是blender 本文生成了自定义生成了一个blender模型,并且应 ...

  4. 只能在执行Render() 的过程中调用 RegisterForEventValidation;

    October 17, 2008  3:28 PMMarch 29, 2013  8:28 PM Aillo 编程   0 Comments 在实现"将GridView中的数据导出到Exce ...

  5. 自定义对话框<转>

    效果如下: <ignore_js_op> QQ截图20130221234404.png (51.02 KB, 下载次数: 126) 下载附件  保存到相册 2013-2-21 23:44 ...

  6. linux下的定时或计时操作(gettimeofday等的用法,秒,微妙,纳秒(转载)

    一.用select()函数实现非阻塞时的等待时间,用到结构体struct timeval {},这里就不多说了. 二.用gettimeofday()可获得微妙级(0.000001秒)的系统时间,调用两 ...

  7. Unity调试设置

    [Unity调试设置] 1.Mac中,"Unity"->"Preferences...". Windows中,"Edit"->& ...

  8. 【原创】10. MYSQL++ 之 DbDriver

    1. 综述 DbDriver只是对于MYSQL C API的一个非常简单的封装,作者原句是This class does as little as possible to adapt between ...

  9. codeforce 460DIV2 D题

    感觉这个题不错,对拓扑排序有了更深的了解,用两种拓扑排序都写了些试试. dfs #include <cstdio> #include <algorithm> #include ...

  10. 【bzoj2190】[SDOI2008]仪仗队

    2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2638  Solved: 1674[Submit][Statu ...