mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-28 22:25:07 +03:00
51 lines
1.2 KiB
Go
Executable file
51 lines
1.2 KiB
Go
Executable file
//go:build windows
|
|
// +build windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"os/exec"
|
|
"syscall"
|
|
)
|
|
|
|
var riv_ctrl_path string
|
|
|
|
func run_command(command string) []byte {
|
|
args := []string{"-json", command}
|
|
cmd := exec.Command(riv_ctrl_path, args...)
|
|
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
|
|
out, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
//log.Fatalf("cmd.Run() failed with %s\n", err)
|
|
return []byte(err.Error())
|
|
}
|
|
return out
|
|
}
|
|
|
|
func run_command_with_arg(command string, arg string) []byte {
|
|
args := []string{"-json", command, arg}
|
|
cmd := exec.Command(riv_ctrl_path, args...)
|
|
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
|
|
out, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
//log.Fatalf("command failed: %s\n", riv_ctrl_path+" "+strings.Join(args, " "))
|
|
return []byte(err.Error())
|
|
}
|
|
return out
|
|
}
|
|
|
|
func Console(show bool) {
|
|
var getWin = syscall.NewLazyDLL("kernel32.dll").NewProc("GetConsoleWindow")
|
|
var showWin = syscall.NewLazyDLL("user32.dll").NewProc("ShowWindow")
|
|
hwnd, _, _ := getWin.Call()
|
|
if hwnd == 0 {
|
|
return
|
|
}
|
|
if show {
|
|
var SW_RESTORE uintptr = 9
|
|
showWin.Call(hwnd, SW_RESTORE)
|
|
} else {
|
|
var SW_HIDE uintptr = 0
|
|
showWin.Call(hwnd, SW_HIDE)
|
|
}
|
|
}
|