不知道有没有这样一个需求:有个.xml文件,想要用notepad++打开,然而我的notepad++是绿色免安装版,所以注册表没有把这个功能添加到鼠标右键,所以右键点击这个文件时没有(使用notepad++打开)的选项;

发现了更好用的player用来打开.MP4文件;

想要用特定的软件打开特定后缀名的文件。

之前想学习一些源码,于是想反编译.dll来看看源码是如何实现的。下了个ILSpy来查阅的时候,发现要先打开ILSpy,再把这个.dll文件拖入其中,或者使用ILSpy窗体里的"文件->打开"来打开指定的dll,这个操作是不是比较繁琐又慢人一步。

===========================非开发者可以跳过中间这段,直接看工具怎么使用和下载链接===========================

我们C#的控制台程序里,入口函数中

static void Main(string[] args)
{var path = args.FirstOrDefault();Console.WriteLine(path);
}

这个args里面其实包含了一些可传入参数。如果你拖入一个文件到"控制台.exe"上时,控制台程序将输出这个路径。其实许多软件都包含了这一步读取传入参数的方法。那么这个ILSpy的入口函数里,应当也有类似的方式,直接拖动一个.dll到ILSpy.exe上时,ILSpy将直接打开这个文件。

因此我们可以使用注册表,将所有的文件类型与可执行程序关联起来。

注册表打开一个文件时,使用的命令其实是"{exePath}" "%1"(使用双引号包起来,可以避免路径里包含空格导致异常) ,后面这个"%1"表示需要传入的参数。

所以,我们只需要在注册表里,往每个对应的类型里添加可执行程序路径,则可以完成这个操作。

===========================理论部分说完===========================

根据上述思路,在下就编写了一个小工具,可以把任意格式关联到任何程序上,使右键选中这个文件时,右键列表里将出现"用XX打开"的命令。

打开界面是这个样子:

完成的话,这个Open With ILSpy, Open With ILDasm都是自定义添加上去的。

步骤比较简单,如下:

1.设置命令名,也就是"Open With ILSpy",也可以是其他自定义的命令名;

2.填写文件类型,如.exe, .mp4;

3.设置打开所用exe的绝对路径,绝对路径也就是物理路径全名称。点击右侧的"..."可以浏览文件夹选择目标文件,也可以使用下拉菜单选择历史记录里的路径;

4;额外参数,

额外参数是以{exePath} {leftParam} "%1" {rightParam} 为顺序填充的命令。在某些情况下需要如此填写,比如使用Unity直接以目标平台android打开文件夹,则需要填写在"%1" 路径参数的左侧("Unity.exe" -buildTarget android -projectPath "%1",这是在注册表里的结果)。

填写完成的参考图:

5. 最后一步,点击注册,这个命令将写入到注册表里,从而在右键菜单里添加指定的命令。

6.Extra。如果需要注销这个命令,则反过来,只需要填写命令名,和文件类型,然后点击注销,如果该命令被注册过,则能够成功完成注销。

Github链接:GitHub - DoyoFish/SetOpenWithCommand: Used for open .exe with custom command.

下载链接:

Release 1.5版本 · DoyoFish/SetOpenWithCommand (github.com)

一个windows右键关联工具相关推荐

  1. 【PC工具】开源绿色windows右键管理工具软件

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 电脑用时间长了,装的软件多了,不免会装很多影响鼠标右键菜单的软件,比如我这台电脑,装的 ...

  2. 分享一个windows应用鼠标手势工具

    新买了一个笔记本,发现win10的触摸板的多手指手势还是很不错的.但是打字的时候就很烦误碰到触摸板.并且也希望台式机也能使用这些手势. 所以,专门学习C#做了一个软件工具解决我的痛点问题.这里也分享给 ...

  3. 基于Fluent Terminal和Cmder打造一个美观的Windows命令行工具

    前言   相信有很多小伙伴跟我一样,觉得Windows的原生命令行工具具有很多缺点:传统的黑底白字(Windows PowerShell则是蓝底白字)极不美观,复制文本不方便,不支持多Tab页导致多窗 ...

  4. 一个小巧的WINDOWS垃圾清理工具

    一个小巧的WINDOWS垃圾清理工具 附件:http://down.51cto.com/data/2348167 本文转自 saturn 51CTO博客,原文链接:http://blog.51cto. ...

  5. 一个C#开发的Windows远程桌面工具

    作为一名程序员,日常远程到服务器再正常不过了,在Windows环境,我们一般是通过操作系统自带.或者第三方工具.今天给你推荐一个开源的Windows远程桌面工具. 项目简介 这是一个基于 MSTSC ...

  6. 一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议

    上次给大家推荐<一个C#开发的Windows远程桌面工具>,这个项目是基于 MSTSC的远程桌面工具,今天给大家推荐另外一个远程桌面工具,该工具小巧但非常实用.体验也非常好,支持多种协议连 ...

  7. Windows编程01_应用程序分类,开发工具和库,第一个Windows程序,字符编码

    01 Windows应用程序分类 1.应用程序分类 控制台程序Console DOS程序,本身没有窗口,通过Windows DOS窗口执行(借的的操作系统的窗口) 窗口程序 拥有自己的窗口,可以与用户 ...

  8. 转:Windows文件关联和VC实现

    Windows文件关联分析 话题的提起: 百度遇到一位朋友紧急求助:系统是windows7,这位朋友因为桌面没有OFFICE图标,又急着要用WORD,就把一个桌面图标右击,选择打开方式中选择了word ...

  9. 解决 Windows 右键无法新建文件问题的方法

    解决 Windows 右键无法新建文件问题的方法 这两天被这个问题搞的非常头疼,还到处都找不到解决方法. 这个症状大概就是,右键 → 新建,然后卡住,文件资源管理器崩溃. 非常痛苦,刚开始发现这个状况 ...

  10. C#创建、安装一个Windows服务

    关于WIndows服务的介绍,之前写过一篇:http://blog.csdn.net/yysyangyangyangshan/article/details/7295739.可能这里对如何写一个服务不 ...

最新文章

  1. 连接惠普打印机(通过WIFI)
  2. 【剑指offer-Java版】26复杂链表的复制
  3. oracle 日期加3个月,三个日期函数(十分有用)!!!!!!!!
  4. 检索数据_1_从表中查询所有行和列
  5. 用 Python 在朋友圈中游遍全球
  6. 将一个数组里面的奇数全部排在前面,偶数排在后面
  7. mysql 5.7 远程端口_ubuntu 16.04 mysql5.7.17 开放远程3306端口
  8. python listdir报错_Python常见十六个错误集合,你知道那些?
  9. Android - 应用程序的优先级和进程状态
  10. python中plot画图_matplotlib基础绘图命令之errorbar的使用
  11. iview表单校验上传图片成功后,提示文字不消失
  12. 一个示例让你明白界面与数据分离
  13. Matlab中break语句
  14. 职业规划-三大职业生涯阶段
  15. 浅谈中国现货市场环境对期货市场发展的影响
  16. 已然神话的区块链的应用了解一下-MGCEX
  17. 手把手教你美国亚马逊直购
  18. virtualbox启动时报错 虚拟电脑控制台错误
  19. 你应该知道的三相电机知识
  20. Mansory设置控件时的约束问题

热门文章

  1. PCB封装欣赏了解之旅(上篇)—— 常用元器件
  2. 货币的时间价值及股票估值
  3. c语言求最长单调子序列,设计一个O(n2)时间算法,找出由n个数组成的序列的最长单调递增子序列...
  4. 2022年帝国CMS7.5内核精仿《5288商机网》二次开发多个功能,运营级
  5. 计算机电子表格减法公式,excel表格公式怎么操作
  6. 通过IIS发布网站教程【十分钟完成一个网站发布】
  7. PayPal接口查询账户各币种余额
  8. 图书馆管理信息系统可行性分析
  9. LA 3713 Astronauts
  10. DTU是什么 DTU种类及应用领域分析