//go:build windows package main import ( "os" "os/exec" "path/filepath" "syscall" ) // configureSysProcAttr 設定子行程的 Windows 特有屬性。 // CREATE_NO_WINDOW (0x08000000) 讓 server 子行程不彈 console 視窗(小黑窗)。 // HideWindow 對某些情境也一起加保險。 func configureSysProcAttr(cmd *exec.Cmd) { if cmd.SysProcAttr == nil { cmd.SysProcAttr = &syscall.SysProcAttr{} } cmd.SysProcAttr.HideWindow = true cmd.SysProcAttr.CreationFlags |= 0x08000000 // CREATE_NO_WINDOW } // platformDataDir 回傳 Windows 的應用程式資料目錄。 // %APPDATA%\visiona-local func platformDataDir() string { appdata := os.Getenv("APPDATA") if appdata == "" { home, _ := os.UserHomeDir() appdata = filepath.Join(home, "AppData", "Roaming") } return filepath.Join(appdata, appName) }