https://github.com/kosaka-bun/tray-icon-runner
为运行的程序添加托盘图标的工具
https://github.com/kosaka-bun/tray-icon-runner
c-sharp desktop system-tray tray-icon windows
Last synced: about 1 year ago
JSON representation
为运行的程序添加托盘图标的工具
- Host: GitHub
- URL: https://github.com/kosaka-bun/tray-icon-runner
- Owner: kosaka-bun
- License: gpl-3.0
- Created: 2022-12-28T18:09:33.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-01-18T17:52:01.000Z (over 1 year ago)
- Last Synced: 2025-03-31T05:05:03.354Z (about 1 year ago)
- Topics: c-sharp, desktop, system-tray, tray-icon, windows
- Language: C#
- Homepage:
- Size: 104 KB
- Stars: 107
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TrayIconRunner

[](./LICENSE)

[](../../releases)
## 简介
一款可将任何桌面程序的主窗口最小化到托盘区域的工具,其主要原理是先创建托盘图标,然后通过Win32 API来Hook一个进程的窗口事件,并在进程的主窗口被最小化时,隐藏主窗口。当托盘图标被点击时,再重新显示其窗口。
本项目采用GPL-3.0 License,其要求:
- 本项目的衍生项目需采用GPL-3.0 License。
- 必须在修改的文件中附有明确的说明,须包含所修改的部分及具体的修改日期。
- 通过任何形式发布衍生项目的可执行程序时,必须同时附带或公布衍生项目的源代码。
请参阅:[更新日志](./docs/changelog.md)
## 用法
以Elastic Search为例,Elastic Search是通过脚本启动的,启动后会持续保留一个控制台窗口,不便使用。
首先[下载](../../releases/latest)TrayIconRunner的可执行程序,并将其解压到一个目录中。
在Elastic Search的启动脚本所在的目录,即`{Elastic Search安装目录}/bin`目录下,创建一个名为`startup.tir`的文件,在其中输入以下内容并保存。
```json
{
"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`文件中,手动指定要用来打开文件的可执行程序。
```json
{
"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`的键值对中的文件扩展名,寻找要用来打开这个文件的可执行程序。