重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关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窗口的方法,详细使用情况还需要大家自己亲自动手使用过才能领会。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!