一个windows右键关联工具
不知道有没有这样一个需求:有个.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右键关联工具相关推荐
- 【PC工具】开源绿色windows右键管理工具软件
微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 电脑用时间长了,装的软件多了,不免会装很多影响鼠标右键菜单的软件,比如我这台电脑,装的 ...
- 分享一个windows应用鼠标手势工具
新买了一个笔记本,发现win10的触摸板的多手指手势还是很不错的.但是打字的时候就很烦误碰到触摸板.并且也希望台式机也能使用这些手势. 所以,专门学习C#做了一个软件工具解决我的痛点问题.这里也分享给 ...
- 基于Fluent Terminal和Cmder打造一个美观的Windows命令行工具
前言 相信有很多小伙伴跟我一样,觉得Windows的原生命令行工具具有很多缺点:传统的黑底白字(Windows PowerShell则是蓝底白字)极不美观,复制文本不方便,不支持多Tab页导致多窗 ...
- 一个小巧的WINDOWS垃圾清理工具
一个小巧的WINDOWS垃圾清理工具 附件:http://down.51cto.com/data/2348167 本文转自 saturn 51CTO博客,原文链接:http://blog.51cto. ...
- 一个C#开发的Windows远程桌面工具
作为一名程序员,日常远程到服务器再正常不过了,在Windows环境,我们一般是通过操作系统自带.或者第三方工具.今天给你推荐一个开源的Windows远程桌面工具. 项目简介 这是一个基于 MSTSC ...
- 一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议
上次给大家推荐<一个C#开发的Windows远程桌面工具>,这个项目是基于 MSTSC的远程桌面工具,今天给大家推荐另外一个远程桌面工具,该工具小巧但非常实用.体验也非常好,支持多种协议连 ...
- Windows编程01_应用程序分类,开发工具和库,第一个Windows程序,字符编码
01 Windows应用程序分类 1.应用程序分类 控制台程序Console DOS程序,本身没有窗口,通过Windows DOS窗口执行(借的的操作系统的窗口) 窗口程序 拥有自己的窗口,可以与用户 ...
- 转:Windows文件关联和VC实现
Windows文件关联分析 话题的提起: 百度遇到一位朋友紧急求助:系统是windows7,这位朋友因为桌面没有OFFICE图标,又急着要用WORD,就把一个桌面图标右击,选择打开方式中选择了word ...
- 解决 Windows 右键无法新建文件问题的方法
解决 Windows 右键无法新建文件问题的方法 这两天被这个问题搞的非常头疼,还到处都找不到解决方法. 这个症状大概就是,右键 → 新建,然后卡住,文件资源管理器崩溃. 非常痛苦,刚开始发现这个状况 ...
- C#创建、安装一个Windows服务
关于WIndows服务的介绍,之前写过一篇:http://blog.csdn.net/yysyangyangyangshan/article/details/7295739.可能这里对如何写一个服务不 ...
最新文章
- 连接惠普打印机(通过WIFI)
- 【剑指offer-Java版】26复杂链表的复制
- oracle 日期加3个月,三个日期函数(十分有用)!!!!!!!!
- 检索数据_1_从表中查询所有行和列
- 用 Python 在朋友圈中游遍全球
- 将一个数组里面的奇数全部排在前面,偶数排在后面
- mysql 5.7 远程端口_ubuntu 16.04 mysql5.7.17 开放远程3306端口
- python listdir报错_Python常见十六个错误集合,你知道那些?
- Android - 应用程序的优先级和进程状态
- python中plot画图_matplotlib基础绘图命令之errorbar的使用
- iview表单校验上传图片成功后,提示文字不消失
- 一个示例让你明白界面与数据分离
- Matlab中break语句
- 职业规划-三大职业生涯阶段
- 浅谈中国现货市场环境对期货市场发展的影响
- 已然神话的区块链的应用了解一下-MGCEX
- 手把手教你美国亚马逊直购
- virtualbox启动时报错 虚拟电脑控制台错误
- 你应该知道的三相电机知识
- Mansory设置控件时的约束问题
热门文章
- PCB封装欣赏了解之旅(上篇)—— 常用元器件
- 货币的时间价值及股票估值
- c语言求最长单调子序列,设计一个O(n2)时间算法,找出由n个数组成的序列的最长单调递增子序列...
- 2022年帝国CMS7.5内核精仿《5288商机网》二次开发多个功能,运营级
- 计算机电子表格减法公式,excel表格公式怎么操作
- 通过IIS发布网站教程【十分钟完成一个网站发布】
- PayPal接口查询账户各币种余额
- 图书馆管理信息系统可行性分析
- LA 3713 Astronauts
- DTU是什么 DTU种类及应用领域分析