diff options
Diffstat (limited to 'mkvlib/p_windows.go')
| -rw-r--r-- | mkvlib/p_windows.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/mkvlib/p_windows.go b/mkvlib/p_windows.go new file mode 100644 index 0000000..474b48a --- /dev/null +++ b/mkvlib/p_windows.go @@ -0,0 +1,32 @@ +//go:build windows + +package mkvlib + +import ( + "io" + "os" + "os/exec" + "syscall" +) + +func newProcess(stdin io.Reader, stdout, stderr io.Writer, dir, prog string, args ...string) (p *os.Process, err error) { + cmd := exec.Command(prog, args...) + cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} + if dir != "" { + cmd.Dir = dir + } + if stdin != nil { + cmd.Stdin = stdin + } + if stdout != nil { + cmd.Stdout = stdout + } + if stderr != nil { + cmd.Stderr = stderr + } + err = cmd.Start() + if err == nil { + p = cmd.Process + } + return +} |
