在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

golang启动外部exe应用程序在windows平台下不使用osexec

原文地址: https://www.cveoy.top/t/topic/igEt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录