お世話になっております。
今回質問したいことは、
以下の機能のアプリの作成が可能かということです。
①VB.NETでアプリを作り、常駐させる。
②他のアプリ(テキストエディタやエクセル等)で、
ある特定のキー(Ctrl + 1等)を押した時にフックする。
③②のタイミングで①のアプリの処理を実行する。
④特定のキーが押されるまで待機する。
もし可能な場合は、Ctrl + 1 のフックの方法も
ご教授いただければ幸いです。
よろしくお願いいたします。
簡単なのは、(1)のアプリでタイマーを使って「キー入力」と「(2)のアプリがアクティブかどうか」を随時調べるという方法でしょうか
低水準キーボードフックを使う手もあります(NT 系限定)。
これはキーボードメッセージが送られたウィンドウまでは取得できないので、必要な場合はほかの関数を併用する必要がありますが。
あとは DirectInput を使うとか。
早々の回答ありがとうございます。
> タイマーを使って
押した瞬間に処理を実行したいです。
タイマーで間隔をとても短く
> 「(2)のアプリがアクティブかどうか」
アプリの特定は必要ありません。
説明が足りなくて申し訳ありません。
アプリが何も起動していない状態(たとえばデスクトップ画面)
でも「Ctrl + 1が押された」瞬間を取得したいのです。
> 低水準キーボードフックを使う手もあります(NT 系限定)。
こちらも最初に記述するべきでしたが
XPでも可能な方法は無いでしょうか…
> こちらも最初に記述するべきでしたが
> XPでも可能な方法は無いでしょうか…
いやいやいや、XP は NT 系です。NT4.0/2000/XP/2003/Vista がそうです。
// でも Vista では権限が厳しくなるらしいのでフックが可能かどうか知りません。
これに対し、98/Me を 9x 系と言います(95 もですが、.NET が動かないので除外)。
.NETでは、キーボードフック書けなかったと思いますが・・・
と言うより、買いても動作しなかったように・・・
私は動作しなかったので、結局C言語でキーボードフックを書いて
アプリの.NET側に橋渡ししました。
.NETでキーボードフックできた方居ます?
以上。
VB6.0です。(.NETではありません)参考までに
http://www.geocities.co.jp/SiliconValley/7406/tips/mouse/mouse2.html
使い方次第でキーロガーになりますのでご注意を!!!
お返事が送れて申し訳ありません。
> XP は NT 系です。NT4.0/2000/XP/2003/Vista がそうです。
そうだったんですか、思い違いをしていました。
> .NETでは、キーボードフック書けなかったと思いますが・・・
VB6の環境もありますので、名無しの権兵衛さんの
リンク先を参考にさせていただきます。
皆さんありがとうございました。
VB2005 で電卓ソフトを作成しました。キーボードのテンキーで数値入力できるようにするには、どうすればよいでしょうか?
どなたか教えて下さい。
ツイート | ![]() |