猿问

获取窗口进程开始时间

我知道有像go-ps这样的包在Windows中给我们提供活动运行进程,但是这个包没有进程开始时间和其他进程信息。

而且我知道在Windows电源外壳中使用此命令,我可以获得进程开始时间。

Get-Process | select name, starttime

我不想执行命令并获得结果解析它,实际上主要思想是如何使用像os这样的主Go包获得处理时间。


开心每一天1111
浏览 163回答 1
1回答

慕的地6264312

您可以使用 w32 包来实现此目的。我维护此存储库,您可以通过创建问题来请求包含新的 WinAPI 函数,或者自己动手并打开拉取请求。下面是如何获取当前进程的运行时的示例。我们等待一秒钟,询问时间,输出略高于一秒钟。package mainimport (    "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()))}
随时随地看视频慕课网APP

相关分类

Go
我要回答