Saya pada dasarnya mencari cara untuk menjalankan aplikasi ketika laptop saya beralih ke daya baterai dan, ketika itu, kembali ke AC.
Apakah ada pengait bawaan di Windows atau aplikasi pihak ketiga yang memungkinkan saya untuk merespons acara semacam itu?
EDIT
Saya telah melihat TaskScheduler yang mencoba menjalankan tugas pada acara "power", tetapi tampaknya tidak ada kejadian yang dicatat saat beralih ke baterai.
windows-7
laptop
power-management
battery
Ryan Emerle
sumber
sumber
Jawaban:
Saya menulis sebuah aplikasi ( http://batterysaver.codeplex.com/ ) yang akan mendengarkan pesan perubahan mode daya dan menjalankan tindakan berdasarkan konfigurasi XML.
Jika orang lain dapat menggunakannya, atau memperluasnya, maka hebat. Jika ada sesuatu yang lebih baik, silakan kirimkan.
sumber
Tidak tahu perintah sederhana yang dapat Anda jalankan untuk ini, tetapi skrip harus dapat melakukan ini.
Cobalah mencegat acara Win32_PowerManagementEvent di PowerShell atau WSH . Artikel tomshardware memiliki beberapa kode vbscript, tetapi saya pikir Anda perlu casetype 10 (perubahan powerstate). StackOverflow memiliki beberapa ide di Bagaimana saya bisa tahu kapan Windows masuk / keluar dari mode sleep atau Hibernate? , meskipun Anda harus memperluas ide untuk menangani perubahan status daya alih-alih tidur / hibernasi. Anda mungkin juga menemukan beberapa ide dalam kode untuk pertanyaan. Bagaimana cara menggunakan ManagementEventWatcher untuk melacak penangguhan / melanjutkan?
EDIT: Faktanya, coba sesuatu seperti ini. Ini benar-benar diretas bersama, jadi tidak cantik. Ubah pernyataan Echo untuk melakukan apa pun yang Anda inginkan jika perubahan daya DC atau AC terdeteksi. Jalankan dengan
cscript power.vbs
power.vbs
sumber
Saya suka pendekatan Bill, tetapi dia tidak memberi tahu Anda cara mendaftar untuk Acara WMI di PowerShell, jadi inilah cara melakukannya.
Jika Anda ingin kode Anda memicu hanya ketika Status Daya Sistem berubah, seperti dijelaskan di sini , gunakan kode ini.
Sekarang, ini akan memicu kapan pun status daya berubah, apakah Anda mencolokkan perangkat, atau mencabutnya. Jadi, Anda mungkin ingin berhenti dan berhenti sejenak untuk mengajukan pertanyaan:
Untungnya kita dapat melakukannya melalui Kelas WMI
BatteryStatus
, jadi inilah konstruksi lengkap yang saya gunakan untuk HANYA menjalankan operasi ketika peristiwa daya berubah, dan hanya jika saya tidak lagi menggunakan Daya.sumber