(Bagaimana) saya dapat mengubah waktu sampai screensaver menendang dari baris perintah?

10

Seperti judulnya bertanya (Windows 7). (Bagaimana) saya dapat mengubah waktu sampai screensaver menendang dari baris perintah? Apakah itu mungkin?

Biasanya saya senang dengan pengaturan 5 menit, tetapi kadang-kadang saya ingin membuatnya lebih lama. Saya ingin dua panjang terikat pada hot-key (saya tahu bagaimana melakukan itu).

Saya kira saya bisa merekam dua makro dan menggunakannya, tapi saya hanya ingin tahu apakah ada opsi baris perintah (termasuk pembaruan registri) yang dapat saya gunakan untuk memberi tahu Windows untuk memulai screen saver setelah X menit tidak aktif.

(harap dicatat, saya tidak ingin segera memulai screen saver; Saya ingin mengubah lamanya waktu yang akan ditunggu Windows sebelum memulai)

Terima kasih sebelumnya.


[Jawab] Saya akhirnya menggunakan variasi pada jawaban dari @Gjordis - tetapi semua kredit diberikan kepadanya.

Saya tidak melihat mengapa kami membutuhkan 3 operasi: tambah, hapus lalu ganti nama dan kurangi menjadi dua.

Karena saya ingin mengikat hotkey, saya harus menjalankan dua comamnds dalam satu. Biasanya, seseorang dapat memisahkan perintah dengan titik koma dan mengeluarkannya pada satu baris (misalnya dir c:;dir d:). Itu memberi kesalahan dengan regperintah, jadi pada akhirnya saya punya dua file batch. Contensnya identik, hanya durasinya yang berubah.

Pada hal yang aneh - nilainya ditulis dengan benar ke registri, tetapi Control Panel / Personalisasi / Screen saver tidak selalu memperbarui GUI-nya. Namun, saya menguji dan screen saver berperilaku seperti yang diharapkan.

@echo off
reg delete "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 180 /f

Jika ini membantu Anda, harap jawab pertanyaannya ;-)

Mawg
sumber

Jawaban:

7
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f

Nilai 600 dalam hitungan detik, = 10 menit Menarik, seperti yang ditunjukkan, ini hanya bekerja pertama kali. Pada perubahan selanjutnya, Anda perlu membuat kunci baru seperti:

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOutTemp /t REG_SZ /d 300 /f

Kemudian hapus yang lama

reg delete "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f

Kemudian salin yang baru ke nama yang tepat

reg copy "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOutTemp "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut

Mudah-mudahan ini berhasil, dan Anda tidak merusak komputer Anda, tetapi karena Anda tidak memiliki nilai registri ini, saya tidak berpikir menghapusnya bisa begitu mengerikan.

Daftarkan dokumentasi di sini: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/reg.mspx?mfr=true

Gjordis
sumber
Itu bekerja :-) Pertama kali saja :-( mungkin karena saya tidak punya entri registri waktu pertama, jadi bisa menambahkan, tetapi mungkin perlu memodifikasi selanjutnya? +1 untuk mencoba. Terima kasih
Mawg
1
Diedit agar mudah-mudahan bekerja di waktu lain juga
Gjordis
+1 Baiklah, itu aneh. Saya bisa melihat bahwa itu memperbarui kunci registri, tetapi ketika saya mengklik kanan desktop (atau pergi melalui panel kontrol) dan memilih "meresap", masih menunjukkan 5 permen pada GUI. Jika saya mengatur 10 detik melalui registri, screen saver tidak mulai setelah 10 detik (atau bahkan beberapa menit). Jika saya menetapkan 1 menit dalam GUI maka itu mulai setelah 1 menit (dan pembaruan registri dengan benar).
Mawg
Mungkin memiliki nilai yang valid -range
Gjordis
+1 Saya menggunakan variasi pada jawaban Anda dan telah mempostingnya di qustion di atas. Terima kasih atas bantuan Anda
Mawg
1

Faktanya, pendekatan ini (via registry) tidak berfungsi sampai reboot . Satu-satunya cara untuk melakukan itu tanpa reboot PC adalah dengan menggunakan API:

https://www.pcreview.co.uk/threads/utility-to-temporently-change-the-screensaver.2321339/#post-7442568

tetapi API tidak dapat digunakan dari baris perintah, yaitu skrip VB. Inilah alasannya:

http://forums.codeguru.com/showthread.php?31534-VBScript-and-API&p=86696#post86696

Itu bisa dilakukan dengan memanggil utilitas SetScrTimeout.exe (dari tautan pertama), tetapi sayangnya, utilitas kecil ini tidak ada lagi di internet.

Aleksandar
sumber
Terima kasih untuk itu. Mungkin SetScrTimeout.exe dapat ditemukan dalam perjalanan kembali mesin ? Saya tidak dapat memeriksa karena firewall perusahaan, tetapi harus ada di sana - yang lainnya ;-)
Mawg
1
Saya bahkan mencoba di server ftp, tetapi tidak ada hasil. Saya telah menemukan kode sumber VB untuk tujuan itu ( freevbcode.com/ShowCode.asp?ID=504 ), tetapi saya tidak dapat membuat dan berbagi exe.
Aleksandar
Adakah yang tahu versi VB (saya menebak VN 6)?
Mawg