From c3840a59880b8f21ff6a751ca248a0484724cbe2 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: Thu, 2 Mar 2023 13:25:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E5=90=AF=E5=8A=A8=E6=97=B6?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=A0=87=E9=A2=98=E4=B8=BA=20`go-cqhttp=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=20=E7=89=88=E6=9D=83`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- global/terminal/title.go | 15 +++++++++++++ global/terminal/title_windows.go | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 global/terminal/title.go create mode 100644 global/terminal/title_windows.go diff --git a/global/terminal/title.go b/global/terminal/title.go new file mode 100644 index 0000000..b2fc8d7 --- /dev/null +++ b/global/terminal/title.go @@ -0,0 +1,15 @@ +//go:build !windows + +package terminal + +import ( + "fmt" + "time" + + "github.com/Mrs4s/go-cqhttp/internal/base" +) + +func init() { + // 设置标题 + fmt.Printf("\033]0;go-cqhttp "+base.Version+" © 2020 - %d Mrs4s"+"\007", time.Now().Year()) +} diff --git a/global/terminal/title_windows.go b/global/terminal/title_windows.go new file mode 100644 index 0000000..1302db0 --- /dev/null +++ b/global/terminal/title_windows.go @@ -0,0 +1,38 @@ +package terminal + +import ( + "fmt" + "syscall" + "time" + "unsafe" + + "golang.org/x/sys/windows" + + "github.com/Mrs4s/go-cqhttp/internal/base" +) + +var ( + //go:linkname modkernel32 golang.org/x/sys/windows.modkernel32 + modkernel32 *windows.LazyDLL + procSetConsoleTitle = modkernel32.NewProc("SetConsoleTitleW") +) + +//go:linkname errnoErr golang.org/x/sys/windows.errnoErr +func errnoErr(e syscall.Errno) error + +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, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func init() { + _ = setConsoleTitle(fmt.Sprintf("go-cqhttp "+base.Version+" © 2020 - %d Mrs4s", time.Now().Year())) +}