From ba0e471a19a808adb53c454c7c53fc0297e23744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 1 Mar 2023 11:39:47 +0800 Subject: [PATCH] fix: set title --- console/console_windows.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/console/console_windows.go b/console/console_windows.go index ad69d123..c90cc79f 100644 --- a/console/console_windows.go +++ b/console/console_windows.go @@ -4,6 +4,7 @@ import ( "bytes" "os" "strings" + "unsafe" "golang.org/x/sys/windows" @@ -12,6 +13,25 @@ import ( "github.com/FloatTech/ZeroBot-Plugin/kanban" ) +var ( + //go:linkname golang.org/x/sys/windows.modkernel32 modkernel32 + modkernel32 *windows.LazyDLL + procSetConsoleTitle = modkernel32.NewProc("SetConsoleTitle") +) + +func setConsoleTitle(title string) (err error) { + var p0 *uint16 + p0, err = syscall.UTF16PtrFromString(title) + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procSetConsoleTitle.Addr(), 1, uintptr(unsafe.Pointer(p0)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func init() { stdin := windows.Handle(os.Stdin.Fd()) @@ -54,7 +74,7 @@ func init() { // windows 带颜色 log 自定义格式 logrus.SetFormatter(&LogFormat{}) - err = windows.SetConsoleTitle("ZeroBot-Blugin " + kanban.Version + " " + kanban.Copyright) + err = setConsoleTitle("ZeroBot-Blugin " + kanban.Version + " " + kanban.Copyright) if err != nil { panic(err) }