DOBON.NET DOBON.NETプログラミング掲示板過去ログ

PC上でキーの操作があるかを判定したい

環境/言語:[Windows2000以上 VB.NET]
分類:[.NET]

あるアプリのフォームをタスクトレイに常駐させています。
そのアプリがインストールされているPCにて、一定時間(10分とか)
キーボードが押されなければ、「席をはずしている」と判断し、
フォーム上のあるステータス項目を1→2に変更したいです。

逆に、席に戻ってきてキーが押されたら
フォーム上のステータス項目を2→1に戻すという処理をしたいです。

困っているのは、フォーム上でキーが押されたかどうかではなく、
そのPCにおいてキーが押されたかどうかを判定したいということです。

※これができれば十分ですが、理想を言えば、
なるくべPCに負荷をかけないロジックでやりたいです。
つまり、全部のキーイベントを取得するとか、だと負荷が
すごいかかってしまうような気がします。

素人考えですみませんが、どなたか助けてください。
よろしくお願いします。
お世話になります。

■No16833に返信(ぱるけさんの記事)
こちらが参考になると思います。
http://ruffnex.oc.to/kenji/thekeylogger/KeyLogger.html
こんいちは。
VB2005Expressについてくる
「スクリーンセーバスタータキット」
が参考になりませんか?
なおこさん、返信が遅くなり、申し訳ありません。
ようやく成功しました。感動です。

教えていただいた、キーロガーやGetAsyncKeyStateというキーワードをきっかけに
いろいろ調べて、それをtimerコントロールから呼び出した結果、
想定どおりのものができました。

ありがとうございます。


■No16834に返信(なおこ(・∀・)さんの記事)
> お世話になります。
>
> ■No16833に返信(ぱるけさんの記事)
> こちらが参考になると思います。
> http://ruffnex.oc.to/kenji/thekeylogger/KeyLogger.html
ありがとうございます。
「スクリーンセーバスタータキット」も使ってみたいですが、
.netなので使えないのかなと思っています。
ひとまず、できたので良かったです。

■No16862に返信(Mooさんの記事)
> こんいちは。
> VB2005Expressについてくる
> 「スクリーンセーバスタータキット」
> が参考になりませんか?
>
解決です。

■No16833に返信(ぱるけさんの記事)
> あるアプリのフォームをタスクトレイに常駐させています。
> そのアプリがインストールされているPCにて、一定時間(10分とか)
> キーボードが押されなければ、「席をはずしている」と判断し、
> フォーム上のあるステータス項目を1→2に変更したいです。
>
> 逆に、席に戻ってきてキーが押されたら
> フォーム上のステータス項目を2→1に戻すという処理をしたいです。
>
> 困っているのは、フォーム上でキーが押されたかどうかではなく、
> そのPCにおいてキーが押されたかどうかを判定したいということです。
>
> ※これができれば十分ですが、理想を言えば、
> なるくべPCに負荷をかけないロジックでやりたいです。
> つまり、全部のキーイベントを取得するとか、だと負荷が
> すごいかかってしまうような気がします。
>
> 素人考えですみませんが、どなたか助けてください。
> よろしくお願いします。
>
>
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板