ZBLOG

golang 获取本地windows11进程信息

以下是使用 Golang 获取本地 Windows 11 进程信息的示例代码:

  1. package main
  2. import (
  3. "fmt"
  4. "syscall"
  5. "unsafe"
  6. )
  7. type PROCESSENTRY32 struct {
  8. dwSize uint32
  9. cntUsage uint32
  10. th32ProcessID uint32
  11. th32DefaultHeapID uintptr
  12. th32ModuleID uint32
  13. cntThreads uint32
  14. th32ParentProcessID uint32
  15. pcPriClassBase int32
  16. dwFlags uint32
  17. szExeFile [syscall.MAX_PATH]uint16
  18. }
  19. func main() {
  20. snapshot, err := syscall.CreateToolhelp32Snapshot(syscall.TH32CS_SNAPPROCESS, 0)
  21. if err != nil {
  22. fmt.Println("CreateToolhelp32Snapshot failed:", err)
  23. return
  24. }
  25. defer syscall.CloseHandle(snapshot)
  26. var processEntry PROCESSENTRY32
  27. // 必须先设置 dwSize 属性为结构体的大小,否则函数会返回失败。
  28. processEntry.dwSize = uint32(unsafe.Sizeof(processEntry))
  29. // 遍历进程列表并输出每个进程的名称和 ID。
  30. for syscall.Process32Next(snapshot, &processEntry) == nil {
  31. exeName := syscall.UTF16ToString(processEntry.szExeFile[:])
  32. fmt.Printf("Process Name: %s, PID: %d\n", exeName, processEntry.th32ProcessID)
  33. }
  34. }

该代码使用了 CreateToolhelp32Snapshot 函数来获取当前系统中所有进程的快照。然后,它遍历进程列表并输出每个进程的名称和 ID。

注意,在调用 Process32Next 函数之前,必须先将 dwSize 属性设置为结构体的大小,否则函数会返回失败。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4749

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?