go语言调用cmd命令时隐藏dos窗口的方法

这篇文章将为大家详细讲解有关go语言调用cmd命令时隐藏dos窗口的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站制作、成都网站建设、外贸营销网站建设、成都网页设计、小程序开发、成都网站开发、成都网站制作、成都软件开发、app软件定制开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!

通过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
}

以上就是go语言调用cmd命令时隐藏dos窗口的方法,详细使用情况还需要大家自己亲自动手使用过才能领会。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!


文章名称:go语言调用cmd命令时隐藏dos窗口的方法
新闻来源:http://hbruida.cn/article/gisgdi.html