VBで簡単な業務支援をしたいと思っています。

VBのアプリケーションがアクティブになっていなくても(起動はしてる)、あるキーの入力を感知して、VBがアクティブになりイベントが動くような処理はできないでしょうか?

できればVBでやりたいのですが、Windowsの機能やAPIを使ってでもかまいませんので方法がありましたら教えてください。

A 回答 (3件)

こんにちは。


プログラマとして6年程勤務した者です。

APIでもよいということなので、
参考までに・・・。
マウス :GetCursorPos
キーボード:GetAsyncKeyState

あと、先の回答された方がおっしゃっているように
文化オリエント社のSpyWorksを使用するという
方法も「あり」かなぁと思います。
    • good
    • 0

こんにちは。

itohhといいます。

簡単な業務支援ですか...
プログラムは難しいですよ!!

例えば、Wordで文書を編集しているときに「F1]キーを押下したらExcelが起動する、ことを考えてみましょう。

まず、Wordのキー入力を監視するのですが、このとき、WordのWindowのハンドルを取得しなければいけません。
それから、ハンドルに飛んでくるメッセージをWordにわたる前にのぞき見して「F1]キーが押下されたというメッセージならば乗っ取ります。
(乗っ取ってExcelを起動する)

VBには、上記の機能を実現するメソッドは存在しません。(たぶん...)
そのため、Win32APIを駆使して行います。または、メッセージをフックするActiveXを使います。
(自分以外のメッセージを横取りするものは、フリーでは無いかもしれません)

わたしが、知っているメッセージをフックするActiveXは、文化オリエント社のSpyWorksです、ただ、これも自分以外のメッセージまでフックできたか忘れてしまいました。
    • good
    • 0

キーフック(kehook)なんてキーワードを使ってヘルプとかインターネットとかで探してみてください。


ちょっとVBでの具体例は思いつきません。
    • good
    • 0

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

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ