RHibernate – Hibernate Scheduler With Pending Timer

RHibernate adalah program kecil yang berguna untuk melakukan Hibernate komputer yang terjadwal.

Background

Motivasi untuk mengerjakan project ini adalah tidak adanya dukungan timer pada command Hibernate komputer melalui command Shutdown. Pada Windows 7, command shutdown.exe sudah mendukung parameter /h untuk melakukan hibernate. Namun, ternyata parameter /h ini tidak bisa digunakan bersamaan dengan parameter /t untuk memberikan timeout sebelum command shutdown.exe melakukan hibernate.

Shutdown Command Parameter

Seringkali aku tertidur sementara komputerku masih menyala hingga pagi. Karena terjadi pemborosan listrik dan juga demi merawat komputerku, maka aku menggunakan Task Scheduler bawaan Windows untuk me-hibernate komputerku di pagi buta.

Tapi, kadangkala aku juga masih betah melek hingga pagi buta melakukan sesuatu dengan komputerku. Nah, karena command shutdown.exe dengan parameter /h tidak dapat ditambah parameter /t, maka komputerku akan langsung terhibernate ketika Task Scheduler yang menjalankan hibernate berjalan. Hal ini cukup menyebalkan, salah satunya ketika medownload file dari server file sharing yang tidak mendukung resume download.

Inilah alasan yang mendasari mengapa aku membuat RHibernate ini. Nama yang aneh, ya!? bigsmile

Disclamer

Dalam pengembangan program ini, aku menggunakan script yang disharing pada artikel “Lock, Logoff, Reboot, Shutdown, Hibernate, Standby in .Net” dan “DLLImport Statements for VB.Net”, juga script untuk menyimpan data di Registry buatan Pak Victor Valudata.

Cerita Konyol Selama Pengembangan

Ada cerita konyol ketika mengerjakan project ini. Ketika sedang mencoba script yang kudapat dari internet, apakah bisa berjalan, aku melakukan coding seperti ini:

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    If DateTime.Now > hibernateTime Then
        DoTask(State.StandBy)
    End If
End Sub

Misal sekarang jam 23:00 dan hibernateTime diset pada jam 22:00, maka kondisi If pada script di atas akan selalu bernilai true. Karena property Timer1.Interval aku set ke 1 detik, maka setelah 1 detik program ini kujalankan, komputerku langsung terStandBy. Kunyalakan kembali, sampai layar login Windows, sempat mengetik beberapa huruf password akunku, belum sempat login, eh… ternyata komputerku telah dibuat StandBy lagi oleh program ini. Begitu seterusnya, hingga akhirnya terpaksa kulakukan Hard Reset (mematikan secara paksa dengan mencabut kabel power).

Masih cukup geli bila ingat kejadian ini. Dasar Programmer Gadungan. Wkwkwk.

Usage

Ketika dijalankan, RHibernate akan langsung ter-minimize ke System Tray.

RHibernate - System Tray

Berikut tampilan Form Utama dari RHibernate. Silakan masukkan pada jam berapa jadwal untuk hibernate, dan tekan tombol “Set Time”. Tombol “Set Startup” digunakan untuk menyetting RHibernate agar berjalan ketika Windows Startup.

Ketika tiba waktu untuk Hibernate, maka RHibernate akan menanyakan dahulu, apakah akan me-Hibernate atau akan menunda Hibernate selama beberapa menit. Bila dalam 30 detik tidak ada interaksi dari user, maka komputer akan langsung di-Hibernate.

Download

Untuk dapat menggunakan RHibernate, silakan download file exe RHibernate atau file project VS 2010.

Semoga bermanfaat!!

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!


Leave a Reply