- 締切済み
キーの入力をVBで受けたいんです。
VBで簡単な業務支援をしたいと思っています。 VBのアプリケーションがアクティブになっていなくても(起動はしてる)、あるキーの入力を感知して、VBがアクティブになりイベントが動くような処理はできないでしょうか? できればVBでやりたいのですが、Windowsの機能やAPIを使ってでもかまいませんので方法がありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Good-S15
- ベストアンサー率33% (149/439)
こんにちは。 プログラマとして6年程勤務した者です。 APIでもよいということなので、 参考までに・・・。 マウス :GetCursorPos キーボード:GetAsyncKeyState あと、先の回答された方がおっしゃっているように 文化オリエント社のSpyWorksを使用するという 方法も「あり」かなぁと思います。
- itohh
- ベストアンサー率45% (210/459)
こんにちは。itohhといいます。 簡単な業務支援ですか... プログラムは難しいですよ!! 例えば、Wordで文書を編集しているときに「F1]キーを押下したらExcelが起動する、ことを考えてみましょう。 まず、Wordのキー入力を監視するのですが、このとき、WordのWindowのハンドルを取得しなければいけません。 それから、ハンドルに飛んでくるメッセージをWordにわたる前にのぞき見して「F1]キーが押下されたというメッセージならば乗っ取ります。 (乗っ取ってExcelを起動する) VBには、上記の機能を実現するメソッドは存在しません。(たぶん...) そのため、Win32APIを駆使して行います。または、メッセージをフックするActiveXを使います。 (自分以外のメッセージを横取りするものは、フリーでは無いかもしれません) わたしが、知っているメッセージをフックするActiveXは、文化オリエント社のSpyWorksです、ただ、これも自分以外のメッセージまでフックできたか忘れてしまいました。
- shigatsu
- ベストアンサー率26% (511/1924)
キーフック(kehook)なんてキーワードを使ってヘルプとかインターネットとかで探してみてください。 ちょっとVBでの具体例は思いつきません。