diff --git a/README.rst b/README.rst index 4a804b2..67308d9 100644 --- a/README.rst +++ b/README.rst @@ -8,3 +8,5 @@ gopsutil: psutil for golang - dstat: https://github.com/dagwieers/dstat - gosiger: https://github.com/cloudfoundry/gosigar/ - goprocinfo: https://github.com/c9s/goprocinfo +- go-ps: https://github.com/mitchellh/go-ps + diff --git a/common_windows.go b/common_windows.go new file mode 100644 index 0000000..555767b --- /dev/null +++ b/common_windows.go @@ -0,0 +1,31 @@ +// +build windows + +package main + +import ( + "fmt" + "syscall" +) + +type Proc struct { + Pid uint64 +} + +func GetProcList() ([]Proc, error) { + ret := make([]Proc, 0) + kernel32, err := syscall.LoadLibrary("kernel32.dll") + if err != nil { + return ret, err + } + defer syscall.FreeLibrary(kernel32) + Process32First, _ := syscall.GetProcAddress(kernel32, "Process32First") + + // pFirst, _, err := syscall.Syscall(uintptr(Process32First), 0, 0, 0, 0) + pFirst, _, err := syscall.Syscall(uintptr(Process32First), 0, 0, 0, 0) + if err != nil { + return ret, err + } + fmt.Printf("Proc: %v\n", pFirst) + return ret, nil + +}