/ 最近 .rdf 追記 編集 設定 本棚

log[20051103] Windows XP: モニタを省電力モドにするRubyスクリ| [] 葉山 透【9S(ナインエ) (電撃文庫)】 アスキー・アワークス



20051103()

最終更: 2010-07-05T11:01+0900

Windows XP: モニタを省電力モドにするRubyスクリ

電源ボタンが遠くて遠くてってそんなわけはないけど

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);
  • 関数のパラメータの型を指定する 'l'(long) とか 'p'(pointer) とかかなり適当だけど動いてるのな
  • マウスが動いただけで復帰するのが困りもの
  • MessageBoxW()を使うとスクリトの文字コドに関係なく文字化けするのは何故?
  • MessageBoxA()を使うとスクリトの文字コドに関係なく正しく表示されるのは何故?
  • ↑スクリトの文字コドに注目するのが間違い?
  • 一瞬で復帰してしまうことも多い

[][][] 葉山 透【9S(ナインエ) (電撃文庫)】 アスキー・アワークス

こいつは熱い序盤からぐんぐん読ませてくる天才の遺したオーバーテクノロジーを使ったトルに監禁された戦闘美少女平凡に見えて秘めた実力を持つ主人公萌えも忘れていない

  • 弱点は自分に向けられた好意・思いやりが分からないこと超人的な頭脳と洞察力で戦闘では他者の動きや思考を読んで先んじるのにっち方面は経験がないため極端に鈍くなる
  • ツンツンした喋りはいつデレに変わるの
  • ぱんつはいてない属性装備(: イラトがあるわけではな)

エンターテイメトとして完成された出来栄え