gpt4 book ai didi

go - 使用 exec 仅在后台启动程序

转载 作者:IT王子 更新时间:2023-10-29 01:47:06 25 4
gpt4 key购买 nike

我正在尝试制作一个通过命令行调用另一个程序(带有 GUI)的 go 程序。

使用 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)
}

有没有办法更改代码,使其以可以通过 UI 与之交互的方式启动“Notepad.exe”?

我正在尝试使用在 Mac 上编译的 Windows 程序。

最佳答案

你不需要那个空的 "" 参数,只需使用:

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)
}

关于go - 使用 exec 仅在后台启动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48982903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com