Sistem Windows 7 saya diatur untuk mengunci layar setelah 20 menit tidak aktif (ini adalah kebijakan yang diberlakukan di tempat kerja; Saya tidak dapat mengubah pengaturan ini).
Ketika saya menggunakan keyboard / mouse, Windows memperlakukan mereka sebagai input pengguna, dan dengan demikian layar tetap tidak terkunci. Namun, ketika saya memainkan game apa saja hanya menggunakan joystick, Windows memperlakukan itu sebagai tidak ada aktivitas, dan dengan demikian layar terkunci setelah batas waktu.
Apakah ada cara untuk mencegah kunci layar saat menggunakan game berbasis joystick?
Sebagai solusinya, saya saat ini memutar beberapa video acak (dibisukan) di latar belakang menggunakan VLC, yang mencegah kunci layar. Tetapi harus ada cara yang lebih baik untuk menangani masalah ini ...
Saya mungkin bisa menulis naskah, yang akan mensimulasikan beberapa penekanan tombol seperti {NUMLOCK}{NUMLOCK}
via sendkeys
. Namun, selalu ada kemungkinan efek samping yang tidak disengaja dari ini, seperti mencegah saya menggunakan tombol-tombol ini dalam opsi permainan saya.
sumber
Jawaban:
Setiap kali Anda menekan tombol pada keyboard, atau memindahkan / mengklik mouse, Windows me-reset timer idle -nya . Ada fungsi Windows API yang dapat Anda panggil yang mengatur ulang timer idle dengan cara yang persis sama. Dengan memanggil fungsi secara berkala, screen-saver tidak akan pernah aktif dan komputer tidak akan pernah mengunci. Inilah yang VLC dan aplikasi lain lakukan.
Nama fungsi adalah
SetThreadExecutionState
dan ditemukan dikernel32.dll
. Di VB, panggilan sebenarnya terlihat seperti ini:SetThreadExecutionState(ES_SYSTEM_REQUIRED Or ES_DISPLAY_REQUIRED)
Dua konstanta adalah:
ES_SYSTEM_REQUIRED = &H1
danES_DISPLAY_REQUIRED = &H2
Anda tidak dapat melakukan panggilan ini dari VBScript, jadi Anda perlu sesuatu yang lebih canggih untuk membuat kode ini.
Kebetulan, di atas adalah cara yang benar secara teknis untuk melakukan ini. Banyak utilitas yang saya lihat di web menggunakan trik konyol seperti mensimulasikan penekanan tombol atau mengguncang mouse. Itu menurut saya buruk, karena dapat mengganggu pekerjaan Anda.
Ngomong-ngomong, aku terlalu ngelantur. Barang-barang semacam ini milik Stack Overflow.
sumber
Anda dapat menggunakan
SetThreadExecutionState
fungsi ini, seperti yang disediakan oleh modul ctypes Python, sebagai bagian dari aplikasi Python mandiri yang dapat Anda jalankan di latar belakang dan keluar dengan Ctrl + C. (Terima kasih atas jawabannya oleh @ misha256 untuk menjelaskan penggunaan fungsi ini!)Saya telah membuat skrip ini untuk Windows. Kunjungi halaman rilis GitHub di sini .
sumber
0
sebagai pengganti, cara standar adalahpass
.Hanya menjalankan file bernama:
no_sleep.vbs
. File teks inino_sleep.vbs
harus berisi materi teks di bawah ini.Silakan google jika tidak tahu cara membuat file teks kosong dan ganti namanya ekstensi.
Kunci F13 seharusnya tidak mengganggu opsi permainan
sumber