获取 windows 进程开始时间
Get windows process start time
我知道有像 go-ps 这样的软件包可以在 Windows 中为我们提供活动的 运行 进程,但是这个软件包没有进程启动时间等进程信息。
而且我知道在 Windows 电源 shell 中使用此命令我可以获得进程启动时间。
Get-Process | select name, starttime
我不想执行命令并得到解析它的结果,实际上主要的想法是如何使用像 os.
这样的主要 Go 包来获取处理时间
您可以为此使用 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()))
}
我知道有像 go-ps 这样的软件包可以在 Windows 中为我们提供活动的 运行 进程,但是这个软件包没有进程启动时间等进程信息。
而且我知道在 Windows 电源 shell 中使用此命令我可以获得进程启动时间。
Get-Process | select name, starttime
我不想执行命令并得到解析它的结果,实际上主要的想法是如何使用像 os.
这样的主要 Go 包来获取处理时间您可以为此使用 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()))
}