/tray-icon-runner

为运行的程序添加托盘图标的工具

Primary LanguageC#GNU General Public License v3.0GPL-3.0

TrayIconRunner

DotNet License GitHub Stars Release

简介

一款可将任何桌面程序的主窗口最小化到托盘区域的工具,其主要原理是先创建托盘图标,然后通过Win32 API来Hook一个进程的窗口事件,并在进程的主窗口被最小化时,隐藏主窗口。当托盘图标被点击时,再重新显示其窗口。

本项目采用GPL-3.0 License,其要求:

  • 本项目的衍生项目需采用GPL-3.0 License。
  • 必须在修改的文件中附有明确的说明,须包含所修改的部分及具体的修改日期。
  • 通过任何形式发布衍生项目的可执行程序时,必须同时附带或公布衍生项目的源代码。

请参阅:更新日志

用法

以Elastic Search为例,Elastic Search是通过脚本启动的,启动后会持续保留一个控制台窗口,不便使用。

首先下载TrayIconRunner的可执行程序,并将其解压到一个目录中。

在Elastic Search的启动脚本所在的目录,即{Elastic Search安装目录}/bin目录下,创建一个名为startup.tir的文件,在其中输入以下内容并保存。

{
  "file": "elasticsearch.bat",
  "name": "Elastic Search"
}

右键startup.tir文件,设置其属性,将打开方式更改为TrayIconRunner。

双击打开startup.tir,可以看到elasticsearch.bat已经被执行,且托盘区域已出现对应的图标。

点击控制台窗口上的最小化按钮,可以看到控制台窗口已被隐藏,任务栏上已没有此控制台窗口的项目。

点击托盘区域的图标,可以看到控制台窗口已恢复显示。

停止Elastic Search的运行脚本,可以看到托盘区域的图标已消失,TrayIconRunner的进程也已结束。

.tir文件

.tir文件为JSON格式,但也可以为空文件。

假设某目录下有一个test.exe文件,则我们可以在该目录下创建一个名为test.tir的空文件,双击打开它时,TrayIconRunner将会打开与.tir文件在同一个目录下的、同名的.exe文件,并为其创建托盘图标。

如果您不想让TrayIconRunner根据文件的扩展名自动查找要打开的程序,可以在.tir文件中,手动指定要用来打开文件的可执行程序。

{
  "file": "Virtual Machine.vmx",
  "name": "Virtual Machine",
  "executor": "C:\\Program Files (x86)\\VMware\\VMware Workstation\\vmplayer.exe"
}

上例当中,我们添加了一个key为executor的键值对,其中指定了要用来打开Virtual Machine.vmx的可执行程序,TrayIconRunner将使用它。需要注意的是,executor键对应的值(路径)当中的反斜杠,必须按照JSON规范进行转义。

如果.tir文件中不包含key为executor的键值对,则TrayIconRunner将自动根据key为file的键值对中的文件扩展名,寻找要用来打开这个文件的可执行程序。