【Golang语言社区】GO语言启动exe文件并传递参数

大家好,我是社区主编彬哥,今天给大家带来的是关于go语言命令调用本地的exe,并传递参数启动,代码如下:
package main
import (
        "flag"
        "fmt"
        "glog-master"
        "net/http"
        //"os"
        "os/exec"
)
func init() {
        // 初始化 日志系统
        flag.Set("alsologtostderr", "true") // 日志写入文件的同时,输出到stderr
        flag.Set("log_dir", "./log")        // 日志文件保存目录
        flag.Set("v", "3")                  // 配置V输出的等级。
        flag.Parse()
        return
}
// 主函数
func main() {
        //fmt.Print(os.Args[1:])
        glog.Info("Entry main!!!")
        http.HandleFunc("/DuliServer", DuLiServer) // 独立验证
        err := http.ListenAndServe(":8365", nil)
        if err != nil {
                fmt.Println("Entry nil", err.Error())
                return
        }
        return
}
//func main() {
//        fmt.Println("启动游戏成功")
//        glog.Info("Entry main!!!")
//        fmt.Print(os.Args[1:])
//        fmt.Printf(flag.Arg(1))
//        glog.Info("....", flag.Arg(1))
//        glog.Flush()
//        // 正式的
//        http.ListenAndServe(":8364", nil)
//        return
//}
// 独立服务器
func DuLiServer(w http.ResponseWriter, req *http.Request) {
        if req.Method == "GET" {
                w.Header().Set("Access-Control-Allow-Origin", "*")
                req.ParseForm()
                // 获取函数
                strLoginName, bLoginName := req.Form["LoginName"]
                strLoginPW, bLoginPW := req.Form["LoginPW"]
                strGameName, bGameName := req.Form["GameName"]
                strXCName, bXCName := req.Form["XCName"]
                if bLoginPW && bLoginName && bGameName && bXCName {
                        fmt.Println("strLoginName:", strLoginName)
                        fmt.Println("strLoginPW", strLoginPW)
                        fmt.Println("strGameName:", strGameName)
                        fmt.Println("strXCName", strXCName)
                        fmt.Fprint(w, "发送成功!!!")
                        // 发送给游戏
                        CallEXE("F:gocode\\code\\openCV\\bin\\Game.exe")
                        return
                }
                fmt.Fprint(w, "启动失败,参数不对!!!")
                return
        }
}
// 启动exe
func CallEXE(strGameName string) {
        fmt.Println("开始启动游戏。。。")
        arg := []string{"参数一", "参数二"}
        fmt.Println("------------", arg)
        //        cmd := exec.Command("F:\\最新版本游戏\\test1\\test\\test.exe", arg...)
        cmd := exec.Command("Game.exe", arg...)
        _, err := cmd.CombinedOutput()
        if err != nil {
                fmt.Println("Error:", err)
                return
        }
        return
}

本文分享自微信公众号 - Golang语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏林德熙的博客

win 10 UWP 标签

本文主要翻译:http://visuallylocated.com/post/2015/02/20/Creating-a-WrapPanel-for-your-...

12920
来自专栏木宛城主

SharePoint 中时间轴 Timeline的实现

客户需要在OA中实现每日动态功能,能够记录每一位员工的每天的工作动态,我很快想到了时间轴,因为时间轴能很直观的现实员工每一刻的动态。就像Facebook的Ti...

25760
来自专栏圣杰的专栏

ABP入门系列(5)——展现层实现增删改查

这一章节将通过完善Controller、View、ViewModel,来实现展现层的增删改查。最终实现效果如下图: ? 一、定义Controller ABP对A...

30250
来自专栏Jaycekon

Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)

概要: 这篇博文主要讲一下如何使用Phantomjs进行数据抓取,这里面抓的网站是太平洋电脑网估价的内容。主要是对电脑笔记本以及他们的属性进行抓取,然后在使...

46650
来自专栏水击三千

Silverlight学习(二)

好久没来写博客了,这期间经历了春节,也因为忙于一个项目,所以博客被疏忽了。最近一段时间一直在用silverlight做项目,从来一开始的不熟悉渐渐的开始上手。今...

310100
来自专栏林德熙的博客

本文说如何显示SVG

这些图片在http://www.zcool.com.cn/,不知道是不是不能直接用 我们需要一个看起来不会模糊,因为矢量图,所以我们就使用svg,其实png也...

8320
来自专栏糊一笑

移动端效果之ScrollList

写在前面 列表一直是展示数据的一个重要方式,在手机端的列表展示又和PC端展示不同,毕竟手机端主要靠滑。之前手机端之前一直使用的IScroll,但是IScroll...

29860
来自专栏向治洪

iOS开发入门笔记

iOS开发入门笔记 本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发i...

58160
来自专栏阿炬.NET

JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用

41190
来自专栏游戏杂谈

测试用户的网络环境

这个其实是一个hta文件,目的是测试用户本机请求资源、hosts文件、当前所处的位置。参考stone的checknetwork4qqfarm: http://c...

28010

扫码关注云+社区

领取腾讯云代金券