dqcz57269
2015-05-10 21:11
浏览 40
已采纳

如何确保PC可以上网并启动exec?

I have this application running, when system boots Windows 8.1 then it launch. But often the PC get into the network later as a result Google Chrome shows a failed page.

package main
import "os"
import "os/exec"
import "runtime"
import "encoding/json"

type Configuration struct {
  main []string
  name []string
  window []string
}

func main() {
  myos := runtime.GOOS;
  myarch := runtime.GOARCH;
  var chrome = "";
  var cmdopen *exec.Cmd;

  if myos == "windows" {
    if myarch == "386" {
      chrome = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe";
    } else {      
      chrome = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe";
    }          

    // Read config
    file, _ := os.Open("C:/Program Files (x86)/abc/package.json");
    decoder := json.NewDecoder(file);
    configuration := Configuration{};
    err := decoder.Decode(&configuration);
    if err != nil {
      println("error: ", err);
    }

    println(configuration.main);

    // BUG!!!!!!!!!!!!!!!!!!! But make sure local network or internet is available do not just execute the chrome like idiot, which is showing dead page
    cmdopen = exec.Command(chrome, "--app=http://icanhazip.com");
    err1 := cmdopen.Start();
    if err1 != nil {
      println("Failed: ", err1);
    } 

  } else {
    println("Incompatible");
  } 
}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douna2633 2015-05-10 21:35
    已采纳

    you could do an http.Get()

    func hazInternet() bool {
        res, err := http.Get("http://www.google.com/robots.txt")
        if err != nil {
            log.Println(err)
            return false
        }
        res.Body.Close()
        return true
    }
    

    Go PlayGround

    已采纳该答案
    打赏 评论