【发布时间】:2021-03-22 17:08:39
【问题描述】:
我正在制作一个可以在后台运行的简单程序,然后在 Windows 中打开一个 URL。我使用任务计划程序来实现它。它包含两部分:程序和批处理文件。在程序代码中,我使用这个函数在浏览器中打开我的 URL:
func openBrowser(url string) bool {
var args []string
switch runtime.GOOS {
case "darwin":
args = []string{"open"}
case "windows":
args = []string{"cmd", "/c", "start"}
default:
args = []string{"xdg-open"}
}
cmd := exec.Command(args[0], append(args[1:], url)...)
fmt.Println(cmd)
return cmd.Start() == nil
}
为了在后台运行我的程序,我只需要创建一个批处理文件,它可以帮助我运行多个命令,以通过任务计划程序中的程序创建任务。在 .bat 文件中,我使用这些命令:
schtasks /create /xml "Forward_Base.xml" /tn "Forward" /ru SYSTEM
schtasks /run /tn "Forward"
其中 Forward_Base.xml 是我导出的任务计划程序文件。当我启动这个批处理文件时,任务被创建并运行。但是打开浏览器的命令不起作用。然后,当我删除参数 /ru SYSTEM 并再次重新运行批处理文件时。我的程序可以运行,但是它不再在后台运行了!
所以我的问题是 /ru SYSTEM 是如何影响我的程序的,我如何在运行 openBrowser() 的同时同时使用此功能?谢谢!
P/S:很抱歉,由于安全原因,这里没有上传完整的文件或代码。
【问题讨论】: