我正在尝试通过命令行创建一个调用另一个程序(带有GUI)的程序。
使用os / exec包。外部程序启动,但它始终在后台运行。 (即使我尝试启动" Notepad.exe"或.bat文件然后调用实际程序。)
在任务管理器中,您可以看到该过程但无法与其进行交互。
以下是我尝试过的代码示例:
cmd := exec.Command("cmd.exe", "/C", "start", "\"\"", `Notepad.exe`)
log.Println("cmd.exe", "/C", "start", "\"\"", `Notepad.exe`)
cmd.Stdout = os.Stdout
if err := cmd.Start(); err != nil {
log.Println("Error: ", err)
}
有没有办法改变代码,以便它启动" Notepad.exe"在某种程度上,它可以通过用户界面进行交互?
我正在尝试使用在Mac上编译的Windows上的程序。
答案 0 :(得分:0)
您不需要那个空的""
参数,只需使用:
cmd := exec.Command("cmd.exe", "/C", "start", "notepad.exe")
notepad.exe
也不会向其标准输出写入任何内容,因此您无需进行设置。只需运行它:
s := []string{"cmd.exe", "/C", "start", "notepad.exe"}
log.Println("Starting", s)
cmd := exec.Command(s[0], s[1:]...)
if err := cmd.Run(); err != nil {
log.Println("Error:", err)
}