人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows OSのPCの再起動、シャットダウン、レジュームを検知する方法を教えてください。
レジストリの値の変化や、WindowsのAPIやプログラム言語の利用等で、上記のイベントを検知する方法はありますか?

例えば、再起動の場合、XPだと起動日時が取れますので、それを保存しておいて比較すると再起動されたことがわかります。
また、レジストリのRunキーを利用するのもありかと思います。
色々な方法を知りたいです。


●質問者: a6e
●カテゴリ:コンピュータ
✍キーワード:API OS pc Windows XP
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● ardarim
●20ポイント

スタートアップ、シャットダウン、ログオン、ログオフについては、それぞれスクリプトを登録することで任意の処理を行うことができます。

スタートアップ、シャットダウン、ログオン、およびログオフのスクリプトを使用する

Windows Server 2003の説明ですが、基本的に2000やXPでも仕組みは同じです。


サスペンド・レジュームですが、例えば1分間隔で時刻をチェックするようなスレッドを作って、前回チェックしたときから1分以上経過してたらその間はサスペンドされていたと推測できると思います。

◎質問者からの返答

ありがとうございます!


2 ● felix2007
●0ポイント

log http://end

◎質問者からの返答


3 ● memo77
●35ポイント

.net2005以降ならこれですね。

http://msdn2.microsoft.com/ja-jp/library/microsoft.win32.systeme...(VS.80).aspx


再起動したときの前回の終了状況とかが簡単に取れるネタがあれば私も知りたいです。

現在PCの使用状況をコントロールするようなアプリを作ってて、ちょうど同じところを探ってました。


今日はロックしたりロック状態を拾ったりするクラスを作成したりで一日が過ぎた・・・

http://www31.atwiki.jp/memo77/pages/36.html

◎質問者からの返答

ありがとうございます!

2003なのですが参考になりました。

SystemEventsメンバを色々試してみます。


4 ● T_SKG
●35ポイント

ご免なさい、自分で試してはおりません。


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コントロール

http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9804/idea/

◎質問者からの返答

複数の情報ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ