Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mendapatkan Masa Terbiar Windows Menggunakan Go?

Bagaimana untuk Mendapatkan Masa Terbiar Windows Menggunakan Go?

Linda Hamilton
Lepaskan: 2024-11-03 13:45:02
asal
932 orang telah melayarinya

How to Retrieve Windows Idle Time Using Go?

Mengakses Windows Idle Time dengan Go

Panduan ini menyediakan penyelesaian untuk mendapatkan semula masa terbiar sistem Windows menggunakan Golang.

Mengakses Windows API dalam Go

Mendapatkan Maklumat sistem khusus Windows memerlukan penggunaan pakej syscall. Untuk mengakses API, anda perlu mendapatkan godoc dan menjalankannya secara setempat:

go get golang.org/x/tools/cmd/godoc
godoc --http=:6060
Salin selepas log masuk

Kemudian, buka http://127.0.0.1:6060/ dalam penyemak imbas web.

Mendapatkan Maklumat Input Terakhir

Go tidak mempunyai API langsung untuk GetLastInputInfo(). Walau bagaimanapun, anda boleh memanggilnya terus dari DLL:

<code class="go">user32 := syscall.MustLoadDLL("user32.dll")
getLastInputInfo := user32.MustFindProc("GetLastInputInfo")</code>
Salin selepas log masuk

Menyediakan Struktur

Tentukan struktur untuk menyimpan nilai pulangan:

<code class="go">type LastInputInfo struct {
    cbSize uint32
    dwTime  uint32
}</code>
Salin selepas log masuk

Mulakan medan cbSize dengan saiz struktur:

<code class="go">var lastInputInfo LastInputInfo
lastInputInfo.cbSize = uint32(unsafe.Sizeof(lastInputInfo))</code>
Salin selepas log masuk

Memanggil GetLastInputInfo

Lepaskan penuding kepada struktur ke fungsi:

<code class="go">_, _, err := getLastInputInfo.Call(
    uintptr(unsafe.Pointer(&lastInputInfo))))
if err != nil {
    panic("error getting last input info: " + err.Error())
}</code>
Salin selepas log masuk

Ingat untuk mengimport syscall dan tidak selamat .

Tambahan Petua

  • Gunakan versi Unicode fungsi API (cth., akhiran W) dan fungsi penukaran UTF-16 dalam syscall untuk hasil yang optimum.
  • Semua argumen dan nilai pulangan untuk syscall .Panggilan() adalah uintptr.
  • Pulangan garis bawah (_) tidak digunakan pada Windows.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Masa Terbiar Windows Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan