Files
SRCC/console_windows.go
T
2026-06-22 11:33:18 +08:00

44 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Copyright (c) 2026 S.A. (SNOWARE). Written for SCU Team.
// Licensed under MulanPubL-2.0.
// You may obtain a copy at: http://license.coscl.org.cn/MulanPubL-2.0
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND.
// console_windows 模块:通过 WinAPIGetConsoleWindow + ShowWindowAsync)控制控制台窗口的显示/隐藏。
package main
import (
"syscall"
)
// 预加载 WinAPI 所需的 DLL 和函数。
var (
kernel32 = syscall.NewLazyDLL("kernel32.dll")
user32 = syscall.NewLazyDLL("user32.dll")
getConsoleWindow = kernel32.NewProc("GetConsoleWindow")
showWindowAsync = user32.NewProc("ShowWindowAsync")
)
// ShowWindow 常量。
const (
SW_HIDE = 0 // 隐藏窗口
SW_SHOW = 5 // 显示窗口
)
// hideConsoleWindow 获取当前控制台句柄并隐藏窗口。若无控制台则无操作。
func hideConsoleWindow() {
hwnd, _, _ := getConsoleWindow.Call()
if hwnd != 0 {
showWindowAsync.Call(hwnd, SW_HIDE)
log.Debug().Msg("控制台窗口已隐藏")
}
}
// showConsoleWindow 获取当前控制台句柄并显示窗口。若无控制台则无操作。
func showConsoleWindow() {
hwnd, _, _ := getConsoleWindow.Call()
if hwnd != 0 {
showWindowAsync.Call(hwnd, SW_SHOW)
log.Debug().Msg("控制台窗口已显示")
}
}