APIを使って下のように作ってみたのですがフォーカスを他のアプリケーションに
移動してもキー入力(ESC)を認識してくれるようにするにはどうしたらいいのでしょうか?
マウス座標の方は認識するのですけど。。
かなり省略してかいているのでよく理解できないかもしれませんがよろしくお願いします。もちろんGetKeyStateの宣言はしています。
Private Sub Timer1_Timer()
Dim p As POINTAPI
Dim lngVirtualKeyCode As Integer
' 仮想キーボードのキーの状態を取得
lngVirtualKeyCode = GetKeyState(VK_ESCAPE)
Label1.Caption = Right("00" & Hex(lngVirtualKeyCode), 2)
'マウス座標の取得
GetCursorPos p
Label2.Caption = p.X & "," & p.Y
End Sub
GetKeyStateはアクティブでないと参照できないです…。
えーと、方法はちょっとわからないですねぇ…。
HSP(http://www.onionsoft.net/hsp/)には、そういう拡張プラグインがあるそうですけど、
たしか、標準プラグインなので、ソースが公開されていると思います。
参考にしてみたらどうでしょうか?
ああそうそう、システムをフックし、ホットキーを作れば出来ます。
VBStationへどうぞ。
http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/index/index.cgi
でも、取得できるのは設定した1つの(シフトキーと普通キーの)組み合わせのみなので、
ちょっとそれとはちがいますよね^^;
ありがとうございました。
大成功です。中身はほとんど理解できませんでしたがShift,Alt,Ctrlキーなどは無視して(いいのかな?)仮想キーコード(ESC)だけ参照できるようになりました。今回はじめてお邪魔したのですが、今後ともよろしくお願いいたします。
ツイート | ![]() |