- - PR -
スタンバイから復帰させるには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-06 00:13
みなさん、こんにちは。
PCをスタンバイから復帰させるコードはどのようになるのでしょうか。TVキャプチャボードの番組予約機能のようなことをしたいと思っています。 .NETでの方法が判りません。 よろしくお願いします。 | ||||
|
投稿日時: 2006-05-06 00:22
自身がスタンバイの状態なのに、自身が復帰するんですか? 番組予約機能? 外部からの通信によって復帰するということでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-06 08:38
はい. ひとつ例を挙げますと,カノープスのMTVXという製品はPCをスタンバイ状態にしておいても,iEPGで予約した時間になると自動で復帰して録画してくれます.外部からの通信(LAN Wake-upではない)ではありません. | ||||
|
投稿日時: 2006-05-06 09:17
ンー・・・MTVXとやらは全然知らないんだけど、それは単にハードウェア的にタイマがついているってだけじゃないですか?
時間が来たら勝手に・・・ってのが全ての機械で通用するのなら、勝手にテレビがつくのも怪談じゃなくなっちゃうでしょ? | ||||
|
投稿日時: 2006-05-06 09:47
.NET の標準クラスライブラリには存在していませんので、他の手段が必要です。 簡単なのはタスクスケジューラ……ですが、コードから利用するのは逆に面倒かも知れません。 私が書いた COM ラッパ を使えば多少は楽になるかも知れませんが。 こいつの場合、Task.TaskFlags に SystemRequired を追加して、何もしないダミーの実行ファイルを起動させるようにすれば良いでしょう。 Win32API の SetWaitableTimer 関数には、所定の時間になったときに復帰させるかどうかを指定できるパラメータが含まれており、これを利用することができます。 CreateWaitableTimer 関数でタイマを作成して、SetWaitableTimer 関数で有効になる時間を設定します。その後タイマを待機するための WaitForSingleObject 関数や(これは .NET の WaitHandle クラスを派生させれば WaitOne メソッドを使えますが)、復帰する際、ロックから回復するための SetThreadExecutionState 関数を使うことも必要かも知れません。 | ||||
|
投稿日時: 2006-05-07 10:38
みなさん、情報ありがとうございます。
Hongliangさんのおっしゃるように.NETで無理そうなのでタスクスケジューラを使うことで対応することにします。余裕があればぜひHongliangさんのCOMコンポーネントを使わせて頂こうと思います。 #HongliangさんのウェブページにあるCOMコンポーネントの説明って丁寧ですね。 |
1