//go:build windows package helpers import ( "syscall" "golang.org/x/sys/windows" ) // HiddenSysProcAttr starts a process with no console window. func HiddenSysProcAttr() *syscall.SysProcAttr { return &syscall.SysProcAttr{ HideWindow: true, CreationFlags: windows.CREATE_NO_WINDOW, } } // HiddenDetachedSysProcAttr is HiddenSysProcAttr plus a new process group so // the child survives after the parent exits (install relaunch, updates). func HiddenDetachedSysProcAttr() *syscall.SysProcAttr { return &syscall.SysProcAttr{ HideWindow: true, CreationFlags: windows.CREATE_NO_WINDOW | windows.CREATE_NEW_PROCESS_GROUP | windows.DETACHED_PROCESS, } }