-PR-
締切り
済み

キーの入力をVBで受けたいんです。

  • 困ってます
  • 質問No.80938
  • 閲覧数282
  • ありがとう数6
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 33% (3/9)

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

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

できればVBでやりたいのですが、Windowsの機能やAPIを使ってでもかまいませんので方法がありましたら教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 26% (511/1924)

キーフック(kehook)なんてキーワードを使ってヘルプとかインターネットとかで探してみてください。 ちょっとVBでの具体例は思いつきません。
キーフック(kehook)なんてキーワードを使ってヘルプとかインターネットとかで探してみてください。
ちょっとVBでの具体例は思いつきません。


  • 回答No.2
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。 簡単な業務支援ですか... プログラムは難しいですよ!! 例えば、Wordで文書を編集しているときに「F1]キーを押下したらExcelが起動する、ことを考えてみましょう。 まず、Wordのキー入力を監視するのですが、このとき、WordのWindowのハンドルを取得しなければいけません。 それから、ハンドルに飛んでくるメッセージをWordにわたる前に ...続きを読む
こんにちは。itohhといいます。

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

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

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

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

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

ベストアンサー率 33% (149/439)

こんにちは。 プログラマとして6年程勤務した者です。 APIでもよいということなので、 参考までに・・・。 マウス :GetCursorPos キーボード:GetAsyncKeyState あと、先の回答された方がおっしゃっているように 文化オリエント社のSpyWorksを使用するという 方法も「あり」かなぁと思います。
こんにちは。
プログラマとして6年程勤務した者です。

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

あと、先の回答された方がおっしゃっているように
文化オリエント社のSpyWorksを使用するという
方法も「あり」かなぁと思います。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ