我知道有像go-ps这样的包在Windows中给我们提供活动运行进程,但是这个包没有进程开始时间和其他进程信息。而且我知道在Windows电源外壳中使用此命令,我可以获得进程开始时间。Get-Process | select name, starttime我不想执行命令并获得结果解析它,实际上主要思想是如何使用像os这样的主Go包获得处理时间。
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
您可以使用 w32 包来实现此目的。我维护此存储库,您可以通过创建问题来请求包含新的 WinAPI 函数,或者自己动手并打开拉取请求。
下面是如何获取当前进程的运行时的示例。我们等待一秒钟,询问时间,输出略高于一秒钟。
package main
import (
"fmt"
"time"
"github.com/gonutz/w32/v2"
)
func main() {
time.Sleep(time.Second)
creation, _, _, _, ok := w32.GetProcessTimes(w32.GetCurrentProcess())
if !ok {
panic("GetProcessTimes failed")
}
fmt.Println("creation", creation.Time())
fmt.Println("run time", time.Now().Sub(creation.Time()))
}
- 1 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消
