本文为了方便使用右键菜单压缩图片,决定在 windows11的文件上右键菜单里面添加一个项目用于自动执行压缩图片功能
使用到的工具
- 右键菜单编辑工具 easy-context-menu-v1-6
- 压缩图片的命令行工具 caseiumCLI
这里我习惯把 Caesiumclt 保存在 d:/programe files 下,其实路径可以随意存放。
添加
添加自定义菜单
运行 easy contet menu, 打开列表编辑器
添加自定义命令
caseiumCLI 压缩图片的具体命令使用
caesiumclt -q 85 --same-folder-as-input image.jpg
如果按上图直接添加命令是可以完成我们想要实现的功能的,但是运行时会弹出窗口并自动消失。
隐藏控制台窗口
弹出窗口的原因
这是一个非常经典的 Windows 命令行工具问题。caesiumclt 是一个控制台应用程序(Console Application),Windows 默认会在运行时调用 cmd.exe 来承载它,所以你会看到那个黑框一闪而过。
解决方案
中心思想:借用 VBScript 脚本调用目标程序
要实现“完全静默(无窗口)”运行,我们需要在 caesiumclt 和 Windows 之间加一层“消音器”。最简单、最原生(无需下载第三方软件)的方法是使用 vbscript 脚本去调用目标程序(在安全方向经常能看到此方案,常用来 RCE,保活等。)
VBScript 调用目标程序
在 caesiumclt.exe 目录下编写以下 vbs
Set WshShell = CreateObject("WScript.Shell")
' 检查是否有文件传入
If WScript.Arguments.Count > 0 Then
inputFile = WScript.Arguments(0)
' === 配置区域 Start ===
' 请务必修改下面的路径为你 caesiumclt.exe 的实际绝对路径
exePath = "D:\Program Files\caesiumclt\caesiumclt.exe"
' 这里是你的参数,注意保留空格
args = " -q 85 --same-folder-as-input "
' === 配置区域 End ===
' 拼接完整命令,注意处理路径中的空格问题
command = """" & exePath & """" & args & """" & inputFile & """"
' 最后的 0 表示隐藏窗口,True 表示等待程序执行完毕
WshShell.Run command, 0, True
End If
修改 Easy Context Menu 的自定义命令,添加 vbs 脚本路径
保存后,右键测速运行测试。