go 使用systray 实现托盘和程序退出

1.先 go get 安装 包

bash 复制代码
go get github.com/getlantern/systray

2.使用的代码

bash 复制代码
func main() {
	fmt.Println("开始")
	systray.Run(onReady, onExit)
}

func onReady() {
	systray.SetIcon(icon.Data)
	systray.SetTitle("Awesome App")
	systray.SetTooltip("Pretty awesome超级棒")
	mQuit := systray.AddMenuItem("Quit", "Quit the whole app")
	fmt.Println("开始启动")
	// Sets the icon of a menu item. Only available on Mac and Windows.
	mQuit.SetIcon(icon.Data)
	//监听点击Quit按钮
	go func() {
		<-mQuit.ClickedCh
		systray.Quit()
	}()
}
//关闭对应的程序,这里的command只适用于windows
func onExit() {
	// clean up here
	fmt.Println("结束")
	command := exec.Command("taskkill", "/im", "server.exe", "/F")
	output, err := command.CombinedOutput()
	if err != nil {
		fmt.Println("output err:", err)
		return
	}
	fmt.Println("output:", string(output))
}
相关推荐
且去填词15 分钟前
Go并发模式进阶:从Worker Pool到可取消任务调度器
数据库·oracle·golang
平凡但不平庸的码农15 分钟前
Go 语言:值传递 vs 指针传递
开发语言·后端·golang
无风听海20 分钟前
深入剖析 ASP.NET Core 的 UsePathBase
后端·asp.net
_waylau41 分钟前
“Java+AI全栈工程师”问答01:Spring MVC登录页面错误提示
java·开发语言·vue.js·后端·spring·mvc·springcloud
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第41题】【JVM篇】第1题:JVM由哪些部分组成?
java·开发语言·jvm·后端·面试
Lee川1 小时前
登录注册模块的 JWT 认证机制详解
前端·后端·react.js
木易 士心1 小时前
深度解析:一个 Java 对象究竟占用多少字节?
java·开发语言·后端
Lee川7 小时前
面试通关:JWT 认证与双 Token 机制深度解析
后端·面试
平凡但不平庸的码农9 小时前
Go Slice 详解
算法·golang
想学习java初学者10 小时前
SpringBoot整合Vertx-Mqtt多租户(优化版)
java·spring boot·后端