Windows Mobile でサスペンドを防止する方法

タイマー(SetTimer API)やスレッドを使用して、定期的に SystemIdleTimerReset API を呼び出す。

[Microsoft KB]
http://support.microsoft.com/kb/180898/ja
(方法 2 に短く記述されているが、方法 2 が推奨の方法。)

他には、keybd_event API で定期的にダミーキーコードを送信する方法と、サスペンド設定レジストリを操作する方法も有効です。(エミュレータ、アドエスで動作確認済み。)

ただし、ダミーキーコードを送信する方法は画面消灯できなくなる弊害があります。設定レジストリを操作する方法は、サスペンド防止期間中に[設定]画面のパワーマネジメント設定で、ユーザがサスペンド防止を解除できます。



アドエスはデバイス側で録音・再生中にサスペンド防止を行っているらしく、録音・再生中にサスペンドしないのですが、エミュレータも含め、通常は自動でサスペンドを防止してくれません。

通信や長時間のファイル操作をする場合、サスペンド防止を入れたほうが良いでしょう。


Last-modified: 2011-04-03 (日) 03:57:16 (2505d)