非アクティブでキー入力を認識させるには?

解決


龍山  2001-10-31 01:32:04  No: 74999

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


たかみちえ  2001-10-31 02:18:25  No: 75000

GetKeyStateはアクティブでないと参照できないです…。
  えーと、方法はちょっとわからないですねぇ…。
HSP(http://www.onionsoft.net/hsp/)には、そういう拡張プラグインがあるそうですけど
たしか、標準プラグインなので、ソースが公開されていると思います。
参考にしてみたらどうでしょうか?


たかみちえ  2001-10-31 08:32:38  No: 75001

ああそうそう、システムをフックし、ホットキーを作れば出来ます。
VBStationへどうぞ。
http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/index/index.cgi

  でも、取得できるのは設定した1つの(シフトキーと普通キーの)組み合わせのみなので、
ちょっとそれとはちがいますよね^^;


龍山  2001-10-31 19:41:39  No: 75002

ありがとうございました。
大成功です。中身はほとんど理解できませんでしたがShift,Alt,Ctrlキーなどは無視して(いいのかな?)仮想キーコード(ESC)だけ参照できるようになりました。今回はじめてお邪魔したのですが、今後ともよろしくお願いいたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加