2010年8月10日火曜日

疲れ切った反応

 SystemIdleTimerReset関数とのドタバタ その後。

 エミュでの動作を見る限り、呼び出しそのものには成功しているとは思うんですが、相変わらず原因が掴めない。もう訳がわからなくなってきて意欲が削がれつつあった今日この頃ですが、仕事中に「ん?」と思うことがありました。
 というのも、会議で議事録書くときに役立てようと思って、会議開始前にRECOZEROの設定画面をあれやこれやと弄っていたときに、ふと気になる項目が目に入りました。
↓これ




「カウンタリセットによるサスペンド防止」って多分、SystemIdleTimerReset関数使用してってことだよな……? と思い、この設定を有効にして録音開始し、放置してみる。その結果、見事に設定しておいた時間後にサスペンドされる
「おぉぅ!?」と唸りつつも今度は「パワーマネジメント設定を切り替えてサスペンド防止」とやらで試す。結果は同じ。録音は継続されてるんだけど、画面は真っ暗になって指でタッチしても反応なし。
 うーん、これは……。

 その後会議中にも、10分起きくらいに何度か画面をタッチしてみるも、完全に反応なし。30分でロックする設定にしていたのでそれぐらい置いてから電源キーを押すとやっぱりロックされてる。でも後でファイル確認してみたらちゃんと全部録音されてる。(画面触ってるときの音がノイズになっててえらい五月蝿かったです)

 うーん……。

 どうも、バックライトが自動で切れる設定だけ生かしつつ、自動サスペンドを無効にする、という機能は今すぐには作れそうにないですな……WM6.5.3の問題なのか、T-01B/IS02の問題なのか、それすらもわかりません。あぁ他のWM機が検証用に欲しい……。
 というわけでバッテリはやや勿体無いですが、以前の仮想キーを送って(keybd_event)サスペンドを防止する方法でやるしかなさそうです。んー悔しいなぁ。
(ちなみにここには書いてませんでしたが、レジストリのSYSTEM\CurrentControlSet\Control\Power\BattPowerOffの値を0にする、という方法も試しましたがこれはエミュでも実機でも効果なし。WM側で設定変えた後に値を取得してもなんかずっと180のまま固定っぽかったんで、もしかして現在は使われてないんでしょうか?)

 とりあえず残りの問題は、1人用画面でマナプール管理ONにしたとき、マナボタンの周りに白い淵が出てしまう問題への対処だけです。背景画像指定しなければ何の問題もないんですけどねー。まぁこの問題は独自コントロール作って背景透過処理を実装するか、ボタンを背景画像の上に描画しちゃうかすればいいだけなんですけど。独自コントロール作ったことって実はないのでそっちの方法を試してみたいんですが、ちょっと仕事が修羅場りそうなので、時間的に厳しいかもしれません……お盆休み取れればいいなぁ……。

2 件のコメント:

  1. レジストリ変更した場合は再起動が必要かもしれませんね

    返信削除
  2. あー……そうでした、再起動が必要なんでしたっけ。orz
    それだと「アプリ起動中のみ」ってのが到底不可能なので、やはりキーボードイベントの方法に頼るしかなさそうです。うぅ。

    返信削除