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))
}
相关推荐
IT_陈寒41 分钟前
SpringBoot自动配置把我都整不会了
前端·人工智能·后端
覆东流1 小时前
第1天:Python环境搭建 & 第一个程序
开发语言·后端·python
码事漫谈1 小时前
Token成本失控?两大开源方案如何重构AI编程成本结构
后端
橙露2 小时前
SpringBoot 全局异常处理:优雅封装统一返回格式
java·spring boot·后端
参.商.2 小时前
【Day51】78.子集
golang·排序算法
LiveWillChange2 小时前
第一阶段:基本功能实现
后端
朝阳5812 小时前
rust 交叉编译指南
开发语言·后端·rust
用户8356290780512 小时前
使用 Python 合并与拆分 Excel 单元格的实用方法
后端·python
thinkingandcoding2 小时前
BTrace实战:Arthas搞不定的那些场景
后端
王码码20352 小时前
Go语言中的配置管理:从Viper到环境变量
后端·golang·go·接口