30 lines
515 B
Go
30 lines
515 B
Go
//go:build windows
|
|
// +build windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
"syscall"
|
|
)
|
|
|
|
type mainProgramStarter struct{}
|
|
|
|
func (s *mainProgramStarter) GetMainName() string {
|
|
return "main.exe"
|
|
}
|
|
|
|
func (s *mainProgramStarter) Start(targetExe string) error {
|
|
cmd := exec.Command(targetExe)
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
|
|
// Windows:新进程组,脱离 Ctrl+C / 父进程
|
|
cmd.SysProcAttr = &syscall.SysProcAttr{
|
|
CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
|
|
}
|
|
|
|
return cmd.Start()
|
|
}
|