物联网软件

This commit is contained in:
BBIT-Kai
2026-02-04 14:02:57 +08:00
parent 646e312a4c
commit 1c11f3f06c
28 changed files with 4526 additions and 271 deletions
+34
View File
@@ -6,7 +6,10 @@ package main
import (
"os"
"os/exec"
"strconv"
"syscall"
"golang.org/x/sys/windows"
)
type mainProgramStarter struct{}
@@ -27,3 +30,34 @@ func (s *mainProgramStarter) Start(targetExe string) error {
return cmd.Start()
}
// 判断进程是否在运行
func (s *mainProgramStarter) IsProcessRunning(pid int) (bool, error) {
if pid <= 0 {
return false, nil
}
// 打开进程句柄
handle, err := windows.OpenProcess(windows.PROCESS_QUERY_LIMITED_INFORMATION, false, uint32(pid))
if err != nil {
// 权限不足,但进程存在
if err == windows.ERROR_ACCESS_DENIED {
return true, nil
}
// 进程不存在
if err == windows.ERROR_INVALID_PARAMETER {
return false, nil
}
// 其他错误
return false, err
}
defer windows.CloseHandle(handle)
return true, nil
}
// 杀掉进程
func (w *mainProgramStarter) KillProcess(pid int) error {
cmd := exec.Command("taskkill", "/PID", strconv.Itoa(pid), "/F")
return cmd.Run()
}