2011-11-14 17 views
-1

C#でクライアントのようなものを作成したいと考えています。Cでコンピュータステータスを取得する方法#

しかし、スリープモード、オフ、ログイン、ログアウトなどのコンピュータの状態をどのように知ることができるかわかりません。

また、ユーザーが10分間コンピュータを使用していない場合は、警告を受け取る必要があります。

+1

「オフ」は簡単です!しかし、私は "クライアント"ビットを削除します。これは非常に曖昧で無関係なものです。セッションモードを決定する際の問題点を広げながら、最後に、2番目の質問を別の質問としてお勧めします。 –

+3

これはあいまいな言葉の質問です。詳しい情報とより具体的な質問を言い換えてみてください。また、アプリケーションが実行されているローカルPC、またはネットワーク上の別の(リモート)PCのステータスを監視しようとしている場合は、それを明確にする必要があります。 – Jason

+0

実際に私が何かを書くときstackoverflowはそれを受け入れませんので、それは短いですが基本的に私はアプリケーションが実行されているローカルPCを監視したい、私は変更モードがあれば私はすべてのデータをデータベースにエクスポートします – user1021833

答えて

0

現在ログインしているユーザーと、ロック/ロック解除されたイベントをフックする方法については、in this threadを参照してください。

あなたが試すかもしれないいくつかの他の異なるアプローチがあります。

  1. あなたはSystem.Diagnosticsを使用してProcesses.GetProcesses()を介してプロセスのリストを取得することができます。アイドルプロセスに注意してください。CPUが50%を超えて10分を超えて実行されている場合、ユーザーはアイドル状態にあるようです。
  2. Performance Countersを使用して、コンピュータ上で行われているアクティビティを監視し、特定の決定をすることができます。
  3. 同様の目的でWMI serviceを使用することもできます。
0

部分的な回答: フックを使用して、ユーザーのアクティビティ/非アクティブを監視できます。 10分間隔でタイマーを開始します。キーボード/マウスのメッセージが検出されたら、それを再起動してください。タイマーイベントが発生した場合は、10分間の非アクティブを検出したことになります。

関連する問題