最終更新: 2010-07-05T11:01+0900
電源ボタンが遠くて遠くて。ってそんなわけはないけど。
require 'Win32API' MB_OK = 0; MessageBox = Win32API.new('user32', 'MessageBoxA', %w(p p p i), 'i'); FindWindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l'); PostMessage = Win32API.new('user32', 'PostMessageA', %w(l l l l), 'l'); WM_SYSCOMMAND = 0x0112; SC_MONITORPOWER = 0xF170; MonitorPowerSave = 1; MonitorPowerOff = 2; # 1 必ず起動しているだろうエクスプローラのウィンドウを探して、 hwndExplorer = FindWindow.call(0, 'Program Manager'); if hwndExplorer == 0 MessageBox.call(0, '(>_<) failed to find some window to send WM_SYSCOMMAND(SC_MONITORPOWER).', $0, MB_OK); exit; end # 2 DefWndProc()を代わりに呼んでもらうことで省電力モードに移行する。 sleep(1); # おまじない。一瞬で復帰することが少なくなる、かも。 PostMessage.call(hwndExplorer, WM_SYSCOMMAND, SC_MONITORPOWER, MonitorPowerOff);
こいつは熱い。序盤からぐんぐん読ませてくる。天才の遺したオーバーテクノロジーを使ったバトルに、監禁された戦闘美少女。平凡に見えて秘めた実力を持つ主人公。萌えも忘れていない。
エンターテイメントとして完成された出来栄え。