golang启动外部exe应用程序在windows平台下不使用osexec
在Windows平台下,你可以使用syscall包来启动外部exe应用程序,而不使用os/exec包。下面是一个示例代码:
package main
import (
"log"
"syscall"
"unsafe"
)
func main() {
cmd := "C:\\path\\to\\your\\exe.exe"
cmdPtr, err := syscall.UTF16PtrFromString(cmd)
if err != nil {
log.Fatal(err)
}
err = syscall.StartProcess(cmdPtr, nil, nil, nil, false, 0, nil, nil)
if err != nil {
log.Fatal(err)
}
log.Println("External application started")
}
在上面的代码中,我们使用syscall.UTF16PtrFromString函数将外部应用程序的路径转换为*uint16类型的指针,然后使用syscall.StartProcess函数启动外部应用程序。
请注意,这种方法不会返回外部应用程序的输出,如果你需要获取外部应用程序的输出,你仍然需要使用os/exec包
原文地址: https://www.cveoy.top/t/topic/igEt 著作权归作者所有。请勿转载和采集!