mirror of
https://github.com/golang/go
synced 2024-11-12 06:30:21 -07:00
syscall : add a field to ProcAttr so that StartProcess can hide the executed application on windows
The SW_HIDE parameter looks like the only way for a windows GUI application to execute a CLI subcommand without having a shell windows appearing. R=brainman, golang-dev, bradfitzgo, rsc1 CC=golang-dev https://golang.org/cl/4439055
This commit is contained in:
parent
22a2f42cef
commit
1f59004511
@ -218,9 +218,10 @@ func joinExeDirAndFName(dir, p string) (name string, err int) {
|
||||
}
|
||||
|
||||
type ProcAttr struct {
|
||||
Dir string
|
||||
Env []string
|
||||
Files []int
|
||||
Dir string
|
||||
Env []string
|
||||
Files []int
|
||||
HideWindow bool
|
||||
}
|
||||
|
||||
var zeroAttributes ProcAttr
|
||||
@ -282,6 +283,10 @@ func StartProcess(argv0 string, argv []string, attr *ProcAttr) (pid, handle int,
|
||||
si := new(StartupInfo)
|
||||
si.Cb = uint32(unsafe.Sizeof(*si))
|
||||
si.Flags = STARTF_USESTDHANDLES
|
||||
if attr.HideWindow {
|
||||
si.Flags |= STARTF_USESHOWWINDOW
|
||||
si.ShowWindow = SW_HIDE
|
||||
}
|
||||
si.StdInput = fd[0]
|
||||
si.StdOutput = fd[1]
|
||||
si.StdErr = fd[2]
|
||||
|
@ -77,6 +77,7 @@ const (
|
||||
|
||||
HANDLE_FLAG_INHERIT = 0x00000001
|
||||
STARTF_USESTDHANDLES = 0x00000100
|
||||
STARTF_USESHOWWINDOW = 0x00000001
|
||||
DUPLICATE_CLOSE_SOURCE = 0x00000001
|
||||
DUPLICATE_SAME_ACCESS = 0x00000002
|
||||
|
||||
@ -240,6 +241,25 @@ type ByHandleFileInformation struct {
|
||||
FileIndexLow uint32
|
||||
}
|
||||
|
||||
// ShowWindow constants
|
||||
const (
|
||||
// winuser.h
|
||||
SW_HIDE = 0
|
||||
SW_NORMAL = 1
|
||||
SW_SHOWNORMAL = 1
|
||||
SW_SHOWMINIMIZED = 2
|
||||
SW_SHOWMAXIMIZED = 3
|
||||
SW_MAXIMIZE = 3
|
||||
SW_SHOWNOACTIVATE = 4
|
||||
SW_SHOW = 5
|
||||
SW_MINIMIZE = 6
|
||||
SW_SHOWMINNOACTIVE = 7
|
||||
SW_SHOWNA = 8
|
||||
SW_RESTORE = 9
|
||||
SW_SHOWDEFAULT = 10
|
||||
SW_FORCEMINIMIZE = 11
|
||||
)
|
||||
|
||||
type StartupInfo struct {
|
||||
Cb uint32
|
||||
_ *uint16
|
||||
|
Loading…
Reference in New Issue
Block a user