>  기사  >  백엔드 개발  >  golang이 cmd 명령을 호출할 때 dos 창을 숨기는 방법

golang이 cmd 명령을 호출할 때 dos 창을 숨기는 방법

王林
王林원래의
2019-12-24 16:14:084235검색

golang이 cmd 명령을 호출할 때 dos 창을 숨기는 방법

go의 표준 라이브러리 exec를 통해 cmd 명령을 호출하면 검은 창이 나타납니다. 이 문제를 해결하려면 Windows에서 win32 API WinExec를 사용할 수 있습니다.

이 문제는 주로 UI가 있거나 콘솔이 없는 프로그램에서 cmd를 호출할 때 발생합니다.

go 컴파일 시 매개변수 추가:

go build  -ldflags="-H windowsgui"
package main
import (
	"errors"
	"
)
import (	
    "github.com/CodyGuo/win"
)
var (
	winExecError = map[uint32]string{		
	0:  "The system is out of memory or resources.",		
	2:  "The .exe file is invalid.",		
	3:  "The specified file was not found.",		
	11: "The specified path was not found.",
	}
)
func main() {
	err := execRun("cmd /c start http://www.baidu.com")	
	if err != nil {
		log.Fatal(err)
	}
}
func execRun(cmd string) error {
	lpCmdLine := win.StringToBytePtr(cmd)	
//http://baike.baidu.com/link?url=51sQomXsIt6OlYEAV74YZ0JkHDd2GbmzXcKj_4H1R4ILXvQNf3MXIscKnAkSR93e7Fyns4iTmSatDycEb
HrXzq
	ret := win.WinExec(lpCmdLine, win.SW_HIDE)	
	if ret <= 31 {		
	    return errors.New(winExecError[ret])
	}	return nil
}

추천 관련 기사 및 튜토리얼: golang 튜토리얼

위 내용은 golang이 cmd 명령을 호출할 때 dos 창을 숨기는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.