下载地址:

  • 网易云安卓右键工具_android 网易右键查看,android右键工具-Android工具类资源-CSDN下载
  • 网易云加密_安卓右键工具-Android工具类资源-CSDN下载

可扩展最新版:bigsinger/CustomContextMenu: 自定义Windows系统右键菜单工具

相关帖子:

  • 安卓右键工具1.2 - 安卓开发与分析者的利器_移动开发_大星星的专栏-CSDN博客

说在前头

这个系统右键菜单一直都想做,但是苦于工作太忙根本无暇设计,后来一直等到来了新人,刚好交给他练手。最初的版本是用C++语言写的,但是一开始版本不稳定总是会造成资源管理器崩溃,用着用着explorer就挂了,比较头疼。这是1.0版本。

后来就让他把功能用脚本代替实现,菜单只实现界面,功能调Python脚本来派发实现,这样即使功能有问题也不会造成资源管理器的崩溃。而且为了考虑可扩展性,增加了一个子级菜单,也就是“插件”那一级菜单。这是2.0版本。

随着新人能力渐长,大家多提BUG反馈,这工具也慢慢打磨的稳定了,虽然偶尔有一些小BUG,但总归频率低了,大家也都慢慢愿意使用起来,现在基本部门里的同事都在使用了。

后来,新人走了,工具没人维护,有一个查壳的功能需要更新特征修复BUG等,由于C++代码较多,功能糅合的不太喜欢看。于是动手重新设计了下。

原有设计上的一些痛点:

  • 版本分x64和x86两个版本,维护的代码也都有许多重复部分。
  • 安装卸载不便,更新发布不便。
  • 有时会造成explorer的崩溃。
  • 界面与功能没有完全分离。
  • 虽然功能部分使用了脚本,但是总体可扩展性太差。

结合以上几点,设计解决方案如下:

  • 菜单界面部分采用C#语言编写,release时使用any cpu选项,兼容x64和x86平台,不用再维护两个版本。
  • 菜单UI与功能完全分离,脚本部分提交到GitHub,人人可写人人可完善,提交维护方便。
  • 菜单UI可扩展,通过编辑menu.xml菜单配置文件来动态生成菜单项。
  • 一键安装一键卸载。
  • 更新版本时,先一键卸载然后GitHub更新代码,再一键安装即可。

现在等下一个新人,DLL部分就不让他维护了,直接把对应的脚本功能完善好即可,提交到GitHub我这边就是新版本了。

  • 原始版本:安卓开发与分析者的利器--安卓右键工具 - 大星星的专栏 - 博客频道 - CSDN.NET
  • 新版本:bigsinger/CustomContextMenu: 自定义系统右键菜单工具

一、所需环境

.NET Framework v4.0

下载地址:Download Microsoft .NET Framework 4(独立安装程序) from Official Microsoft Download Center

Python2.7

由于菜单响应事件是由py编写的,所以需要安装Python,选择的版本是2.7,下载地址:Python 2.7.0 Release | Python.org

star库

由于菜单响应事件是由py编写的,且使用了三方的star库,所以需要安装一下,具体步骤:

在Python安装目录的lib文件夹下(如D:\Python27\Lib),直接gitclone地址:https://github.com/pythonstar/star.git

二、安装

务必以管理员身份运行reg.bat进行注册,注册原理见其源码:

@echo offset dir=%~dp0rem 判断64位系统和32位系统
if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 (echo 32位操作系统%windir%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe %dir%bin/CustomContextMenu.dll /CodeBase
) else (echo 64位操作系统%windir%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe %dir%bin/CustomContextMenu.dll /CodeBase
)
pause

输出含有以下内容时为注册成功:

Types registered successfully

成功注册了类型

三、卸载

务必以管理员身份运行unreg.bat进行卸载,卸载原理见其源码:

@echo offset dir=%~dp0rem 判断64位系统和32位系统
if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 (echo 32位操作系统%windir%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /unregister %dir%bin/CustomContextMenu.dll /CodeBase
) else (echo 64位操作系统%windir%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /unregister %dir%bin/CustomContextMenu.dll /CodeBase
)taskkill /f /im explorer.exeexplorer.exe

输出含有以下内容时为卸载成功:

Types un-registered successfully

成功注销了类型

由于是重启了explorer.exe,所以卸载后dll文件可以操作。

四、自定义菜单配置

菜单配置文件

在bin目录下修改menu.xml,默认给出了一个模板:

<?xml version="1.0"?>
<menu name="安卓右键工具" icon="icon\logo.png"><menu name="复制路径" icon="icon\copypath.png" tag="copypath"/><menu name="DEX 》JAR" icon="icon\dex2jar.png" tag="dex2jar"/><menu name="Manifest 》TXT | AXML 》TXT" icon="icon\m2txt.png" tag="axml2txt"/><menu name="查看APK信息" icon="icon\apkinfo.png" tag="viewapk"/><menu name="查看签名信息" icon="icon\signinfo.png" tag="viewsign"/><menu name="签名" tag="sign" icon="icon\sign.png"/><menu/><menu name="安装(卸载安装)" icon="icon\install.png" tag="installd"/><menu name="安装(替换安装)" icon="icon\installr.png" tag="installr"/><menu name="卸载" icon="icon\uninstall.png" tag="uninstall"/><menu name="查壳" icon="icon\detect.png" tag="viewwrapper"/><menu name="手机信息" icon="icon\phone.png" tag="phone"/><menu name="手机截图" icon="icon\photo.png" tag="photo"/><menu name="提取图标" icon="icon\extracticon.png" tag="icon"/><menu name="zipalign优化" icon="icon\align.png" tag="zipalign"/><menu name="反编译" icon="icon\decom.png" tag="baksmali"/><menu name="回编译" icon="icon\build.png" tag="smali"/><menu name="自定义插件" icon="icon\plug.png"><menu name="插件1" tag="plug1"/><menu name="插件2" tag="plug2"/><menu name="插件3" tag="plug3"/></menu><menu name="关于" icon="icon\about.png" tag="about"/>
</menu>

菜单配置说明

  • 一个菜单项三个属性,分别为name,icon和tag。
  • 如果name为空,则该菜单项为分隔条,例如配置分隔条可以这样配置:
  • icon指示了菜单项的图标文件,以相对路径填写,相对于dll的所在目录。例如:icon\logo.png,若不填写或者指示的图标文件不存在或者加载失败,则条菜单项前面不会出现图标,问题不大。为了加快菜单的加载速度,也可以全部不配置图标文件。
  • tag:如果该项菜单没有子菜单,也不是分隔条,那么就要响应事件,则tag指示了响应的事件名称,最终会被传递到oncommand.py中。
  • 如果菜单含有子菜单项,则按示例menu.xml添加即可。最多支持二级菜单项,不支持更深层次的子菜单。

五、如何响应事件

当用户点击菜单项时,菜单的tag名称会被传递到oncommand.py中,参数形式为:

oncommand.py tag file [files]

如果用户只选择了一个文件,则参数形式为:

oncommand.py tag file

如果用户只选择了多个文件,则参数形式为:

oncommand.py tag file files

也即出现开关files,也可以认为多了一个参数标志。当出现这个标志时,file是一个纯文本的文件全路径,内容是用户选择的多个文件列表,逐行列出。可以在py文件中自行处理多个文件的菜单响应事件,这里并没有实现。

六、效果截图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSvgFuwn-1590997078162)(https://github.com/bigsinger/CustomContextMenu/blob/master/screenshot1.png?raw=true)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TPmCtiwK-1590997078163)(https://github.com/bigsinger/CustomContextMenu/blob/master/screenshot2.png?raw=true)]

自定义系统右键菜单工具-使用说明相关推荐

  1. 关于电脑注册表regedit自定义管理右键菜单选项实例(删除增加)

    前言:删除电脑多余右键菜单的具体操作 所有关于电脑的操作都可以通过修改注册表来实现.而随着电脑软件的安装,本就为方便人们操作的右键菜单变的愈来愈臃肿.但我们可以自定义管理大多数右键菜单,这篇帖子就是为 ...

  2. w764位计算机右键管理,Win7自定义管理右键菜单的完美步骤

    Win7系统右键菜单就像是一个快捷键的使用,用户通过右键菜单能够快速打开自己所要打开的程序,很多用户认为右键菜单上的选项是固定的,其实不是的,用户可以通过自定义管理来让右键菜单更加完美. Win7自定 ...

  3. 360压缩没有系统右键菜单或提示右键损坏

    360压缩软件在安装后或者使用一段时间后,在文件或者文件夹上点击鼠标右键,弹出的系统右键菜单中可能出现没有(360压缩]的相关选项菜单.此问题一般有2个原因: 第一个是:[360压缩]软件对应的右键菜 ...

  4. 右击计算机管理出现乱码,win10系统右键菜单出现乱码的处理方案

    win10系统使用久了,好多网友反馈说win10系统右键菜单出现乱码的问题,非常不方便.有什么办法可以永久解决win10系统右键菜单出现乱码的问题,面对win10系统右键菜单出现乱码的图文步骤非常简单 ...

  5. 自定义桌面右键菜单-Win 10 版

    自定义桌面右键菜单-Win 10 版 进入注册表编辑器 编辑新菜单 查看效果 进入注册表编辑器 通过快捷键"win+r",弹出运行框,输入 regedit .如下图所示: 在打开的 ...

  6. 如何在canvas画布上自定义鼠标右键菜单内容?

    用户大大提了一个需求,想要在画布上能够右键快捷点击使用某个功能,小菜鸟肯定要满足啊(委屈脸),然后靠着强大的各路神仙,写下了如下代码,终于实现了,为自己放个烟花~~~不喜勿喷哦~ 1.自定义鼠标右键菜 ...

  7. win10怎么用记事本打开html文件,给win10系统右键菜单添加“用记事本打开”的方法...

    有时候我们要打开一些文件的时候,总是会选择用记事本打开,但是不少用户升级到win10系统之后,发现右键菜单中并没有"用记事本打开"的选项,那要怎么在iwn10系统右键菜单中添加&q ...

  8. win10记事本编写html没反应,Win10系统右键菜单没有记事本选项的解决方法

    记事本是所有Windows系统上都会有的功能,可以用来编辑文档.有些用户在安装好Win10系统的时候,想创建一个记事本文档的时候,发现右键菜单上没有这个记事本选项,这该如何来解决呢?这个问题可能是系统 ...

  9. win11系统右键菜单修改win10风格 Win11右键菜单修改成win10教程

    win11系统右键菜单修改win10风格 Win11右键菜单修改成win10教程 win11系统之后不是特别喜欢右键菜单,很不舒服.如何修改回原来win10的右键菜单,其实方法很简单,下面来看教程. ...

  10. 关联自己的应用程序到系统右键菜单

    在Windows2000中,当用户在"我的电脑"或"资源管理器"中的某一文件上单击鼠标右键时会出现一个快捷菜单.单击的位置和对象不同,快捷菜单的内容也不尽相同. ...

最新文章

  1. 简述 clearfix 的原理
  2. SQL Select语句完整的执行顺序:
  3. 90年代谁最强?乔丹不可撼动石佛上榜
  4. 《程序是怎样跑起来的》(上)
  5. 对于JDBC的简单理解
  6. MySQL 服务挂了 CPU 消耗接近 100% 你知道怎么回事吗???
  7. Android 数据库 SQLite
  8. Java 编程需要注意的细节
  9. postgresql 中文排序
  10. 程序员必备的10个B站优质UP主!
  11. 台式计算机关机后自行重启,台式电脑关机后自动重启怎么办?台式电脑关机后自动开机的处理办法...
  12. 分布式 | DBLE docker 部署遇到的简单问题修复过程
  13. ui 名前空間の Aura コンポーネントの廃止
  14. 云函数隐藏c2服务器
  15. SPSS结果解读——【独立样本T检验】【方差齐性】
  16. 深度学习平台——Paddle核心框架介绍
  17. 怎么通过手机+电脑在互联网上面赚钱
  18. Sublime Text 3 搭建 Golang 开发环境(记录我遇到的问题)
  19. 【科研杂记_3】测高卫星
  20. 对一些时间处理的总结

热门文章

  1. RHEL 6和RHEL 7管理服务的区别
  2. 2021-11-13偏最小二乘法应用实例python程序代码
  3. 代码-检测文件的编码
  4. 分解gif动图如何操作?手把手教你动图分解方法
  5. tcp协议服务器如何做物联网平台,物联网IoT终端设备如何选择接入协议——(TCP、UDP、MQTT、CoAP、LwM2M哪一个更适合?)...
  6. Jetson tx2记录422测试笔记和wifi信号测试笔记
  7. 学习Vue电商后台管理系统剩余功能模块的bug
  8. 北京计算机专业考研录取分数线,2018北京航空航天大学计算机考研复试分数线_计算机考研分数线...
  9. 基于vue的UI框架ydui中的楼层跳跃scrolltab问题解决
  10. ResNet 残差网络