レジストリの値の変化や、WindowsのAPIやプログラム言語の利用等で、上記のイベントを検知する方法はありますか?
例えば、再起動の場合、XPだと起動日時が取れますので、それを保存しておいて比較すると再起動されたことがわかります。
また、レジストリのRunキーを利用するのもありかと思います。
色々な方法を知りたいです。
スタートアップ、シャットダウン、ログオン、ログオフについては、それぞれスクリプトを登録することで任意の処理を行うことができます。
スタートアップ、シャットダウン、ログオン、およびログオフのスクリプトを使用する
Windows Server 2003の説明ですが、基本的に2000やXPでも仕組みは同じです。
サスペンド・レジュームですが、例えば1分間隔で時刻をチェックするようなスレッドを作って、前回チェックしたときから1分以上経過してたらその間はサスペンドされていたと推測できると思います。
.net2005以降ならこれですね。
http://msdn2.microsoft.com/ja-jp/library/microsoft.win32.systeme...(VS.80).aspx
再起動したときの前回の終了状況とかが簡単に取れるネタがあれば私も知りたいです。
現在PCの使用状況をコントロールするようなアプリを作ってて、ちょうど同じところを探ってました。
今日はロックしたりロック状態を拾ったりするクラスを作成したりで一日が過ぎた・・・
ありがとうございます!
2003なのですが参考になりました。
SystemEventsメンバを色々試してみます。
ご免なさい、自分で試してはおりません。
NSDN内の記事に「モビリティ WPF アプリケーションで電源状態を認識する」
「システムの電源状態変更の通知」 というものがありました。
http://msdn.microsoft.com/msdnmag/issues/07/07/PowerAware/defaul...
この記事の末尾の参考リンク一覧も、参考になると思います。
リンクから辿った、WM_POWERBROADCAST メッセージ の説明です。
http://msdn2.microsoft.com/ja-jp/library/aa373247.aspx
Windows98なら、Visual Basic 6.0 に添付されている ActiveX の一つ Sysinfo.OCX を使うと
サスペントあるいは休止状態から復帰したことが簡単に取れたので使ったことがあります、
しかしWindows2000以降は駄目なようです。
Sysinfo.OCX の新版に相当するもの、MSの開発ツールのどこかにあっても良いと思うのですが。
MSDNのLibraryでは、Sysinfo.OSX のドキュメントを見つけられなかったので、
代わりのURLを書いて置きます。
アイデア+テクニック=200%
●システム情報イベントを得るSysInfo.OCX
知られていないActiveXコントロール
複数の情報ありがとうございます。
ありがとうございます!