« radikoを試してみた | トップページ | 旅チャンネルに加入してみた »

2010年4月 5日 (月)

StationTV録画終了時のスリープ移行

ピクセラのPIX-DT090-PE0は順調に稼働中。

このチューナーの抜群の安定度は脱帽モノ。

録画の失敗は今までゼロ。視聴中にエラー等が発生した事も無し。
素晴らしい限りだ。

ハードの性能は抜群だが、視聴・録画ソフトのStationTVで1点だけ気になった事があった。

このソフト、予約録画時はスリープ及び休止中でも5分位前に復帰するのだが、録画終了時は自動的にスリープに移行しないのだ。

「共通設定」に「予約録画終了後処理」と言う項目があり、「何もしない」/「待機モード」が選択できるのだが、ここで「待機モード」を選んでもPCがスリープに移行するわけではなく、StationTVが待機モードへ移行するのみ。

仕方なく、Vistaの「電源オプション」で「コンピュータをスリープにする時間の変更」で「5分」と短い時間を設定していたのだが、これだと、通常使用中にちょっと放って置くとすぐにスリープしてしまう。

で、WEBを色々漁っていたところ、価格コムのクチコミにヒントがあった。

どうやら、StationTVの状態に応じて一部のレジストリの値がリアルタイムに変更されるらしい。

で、自分もこれをヒントにWSHで状態監視ツールを作成してみた。

以下、ソース。

----------------------------------------------------
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")

interval_watch = 05 '検知間隔(秒単位)
limit_msg = 05 'メッセージボックスの表示リミット(秒単位)

Msgbox2 "StationTVWatchを開始します(このメッセージは自動的に閉じます)",vbokonly + vbinformation,"StationTVWatch",5

while 1 = 1

state_now = WshShell.RegRead("HKEY_CURRENT_USER\Software\Pixela\StationTV\State") 'レジストリ読み込み

'wscript.echo state_now & " " & state_prev

if state_now = 6 then '今回のステータスが待機中

if state_prev = 2 or _
state_prev = 3 then '前回のステータスが視聴あり録画中(2) or 視聴なし録画中(3)

ans = Msgbox2("後5秒でスリープに移行します。移行したくない場合はキャンセルをクリックして下さい",vbokcancel + vbinformation,"StationTVWatch",limit_msg)
if ans = vbcancel then

msgbox "キャンセルされました。通常監視に戻ります。",vbinformation,"StationTVWatch"

else
wscript.sleep 1000 '1秒間を持たせる
'スリープへ移行
WshShell.run("C:\Windows\System32\rundll32.exe PowrProf.dll,SetSuspendState")
end if

end if

end if

state_prev = state_now '前回ステータスの更新

wscript.sleep interval_watch * 1000

wend


'時限付きメッセージボックス
Function Msgbox2(Msg, Style, Title, Time)
Msgbox2 = WshShell.Popup(Msg, Time, Title, Style)
End Function

----------------------------------------------------

すでにこのスクリプトを常駐させてから3日経っているが、順調に動いている。

クチコミでヒントをくれた方の仕様に準じて、予約録画完了後に「スリープに移行します」メッセージが表示され、放って置くかOKをクリックするとそのままスリープし、「キャンセル」クリックでスリープ移行をキャンセル出来る仕様にした。

久々に仕事以外でプログラムを書いて見たが、中々楽しかった。

使用される方は点線内の記述をメモ帳などに貼り付けて「*.vbs」形式で保存し、スタートアップ等にスクリプトのショートカットを置くようにするといいです。

※本文にスクリプトをそのまま貼ったところ、インデントが全てクリアされ非常に見辛くなったので、ここからダウンロード出来るようにしました(2010.04.06)

(但し、なんか不具合があっても責任は取れませんので悪しからず・・・)

« radikoを試してみた | トップページ | 旅チャンネルに加入してみた »

パソコン・インターネット」カテゴリの記事

コメント

同じファイル(stationtv_watch.vbs)を何度かクリックしてしまい、録画終了時に確認ボックスが何個も出てしまい困っています。このvbsというファイルをどこで編集したら良いのでしょうか。尚、スタートメニューにはショートカットは登録していません。解りづらい質問ですいませんが、宜しくお願いします。

zepherさん。

コメント有難うございます。
どうやらプロセスが複数個常駐してしまっているようですね。
スタートアップにショートカットを置いていないのであればPC再起動でプロセスの常駐は解除されます。

再起動が面倒な場合は以下の手順でプロセスを終わらせてください。但し、他の拡張子「vbs」の実行ファイルを既に常駐させている場合は当プロセスか否かの見分けがつかないので、素直にPC再起動されることをお勧めします。

1. 「Winキー」+「R」で「ファイル名を指定して実行」を起動。

2. 「taskmgr」と入力し、ENTER。

3. 表示された画面の「プロセス」タブを選択。

4. イメージ名「wscript.exe」を選択し、「プロセスの終了」をクリック。

5. 他にイメージ名「wscript.exe」がある場合、4を同様に繰り返す。

不明な場合はまたこちらへお願いします。

返信が遅れてすみません。

今の所、録画終了後に確認していますが問題なく稼働しています。

情報有難う御座いました。

突然失礼いたします。
これって、休止モードにはできないのでしょうか?

度々すみません。
ソースにある、「Win32_OperatingSystem」のWin32のところは、使用しているパソコンが64bitだと変わってくるのですか?

それと、このツールを使おうとすると、「HKEY_CURRENT_USER\Software\Pixela\StationTV\Stateのルートが無効です」
と出るのですが、どうしたらいいのでしょう?
自分でも探してみたのですが、どこにあるのか分かりませんでした。

初心者ですみませんが、よろしくお願いします。

コメントを書く

(ウェブ上には掲載しません)

« radikoを試してみた | トップページ | 旅チャンネルに加入してみた »

2014年4月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
無料ブログはココログ

リンク

  • 検索サイト
    google.co.jp