我知道有像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 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消