プロが教える店舗&オフィスのセキュリティ対策術

パソコンの前に人間が座りカタカタ操作しているか、長時間操作されず放置されているかを判別するプログラムを作りたい ⇒ パソコンに対してある種の監視を行いたいのです
誰しも思いつくのはパソコンカメラに人間の姿が写っているか否かを判断する方法があるでしょう ⇒ でも私には難しくて手が出ない
そこで次善に思い付くのはキーボードやマウスが頻繁に操作されていれば人間がパソコンの前にいるだろうと判断することです
ではExcel、Word、その他のアプリケーションの為にキーボードやマウスが操作されたことを検知するプログラムをC#で作れるだろうか?
すなわち自分が実行権を持っていない時の操作検知をする方法はあるのでしょうか?
具体的なプログラムテクニックだけではなく、何等かのヒントでも結構です
ぜひご指導の程お願い申し上げます

A 回答 (6件)

一般的にマウスやキーボードなどの操作はメッセージとしてアプリケーションに送られますが、これをフックによってアプリケーションに送られる前に横取りすることができます。


所望の動作は、グローバルフックを使ってWindowsメッセージを横取りして検知することで実現できます。横取りしたメッセージはアプリケーションに戻すようにしてください。

他にWMIで統計情報を取得してできるかもしれませんが、マウスイベントやキーボードイベントがWindowsで統計情報として収集されているか確認できませんでした。
    • good
    • 0
この回答へのお礼

ありがとうございます

いまグローバルフックについて勉強を始めております
MS-DOS時代、インターラプトの横取りを多用しておりましたので感覚的にも着いていけると思います

今後も宜しくお願い申し上げます
ありがとうございました

お礼日時:2011/05/27 21:23

何時間かおきに、クイズやパス入力のポップアップ表示をさせる。



解答があればいる、なければいない。

オンラインゲームなどのBOT対策などに使われてる手法になります。
    • good
    • 0
この回答へのお礼

ありがとうございます

ゲームは全くやりませんでしたので気づきませんでした
世の中には色々な方法を考え付く人がいるものですねぇ~!!!
感心してしまいました

お礼日時:2011/05/27 21:06

http://www.google.com/search?q=C%23+idle+time

CodeProjectのサンプルがよさそう
    • good
    • 0
この回答へのお礼

ありがとうございます

早速参考にさせて頂きました
今後も宜しくご指導の程お願い申しあげます

ありがとうございました

お礼日時:2011/05/27 21:08

Windowsのコントロールパネルのタスクのところでアイドル状態になった時に


実行するプログラムを登録できるので、
たとえば、「コンピュータが次の時間アイドル状態になった場合のみタスクを開始する」にして
これを10分とかにしておけば、
10分操作しないと、登録したプログラムが実行できます。

実行されるプログラム自体は、目的に合わせて、
特定のログファイルにそのアイドル状態になった時刻を書き出しするとか
なにかのコマンドを実行するbatファイルにするとか、
それように作ればいいのでは?
    • good
    • 0
この回答へのお礼

「コンピュータが次の時間アイドル状態になった場合のみタスクを開始する」  こんな設定ができるとは知りませんでした

ユーティリティを作っておりますので、この手段は色々なところで使えます

今日は本当に良いことを教わりました

ありがとうございました

お礼日時:2011/05/27 21:14

これ一番楽かな?



コントロールパネルの電源オプションでシステムスタンバイまでの時間を設定するのはどう?
節電にもなるしね。

あとは ping でもなんでもなんなりと。
    • good
    • 0
この回答へのお礼

ありがとうございました

勉強になりました!!!

お礼日時:2011/05/27 21:17

デフラグとかでも強制的にスクリーンセイバーがONになることから、スクリーンセイバーは操作をされない時間がカウントされていませんか?



これを応用してはどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます

参考になりました

お礼日時:2011/05/27 21:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!