私のVB6プロジェクトでは、MDIフォームのツールバーコントロールにキーボードショートカットが必要です。このために、vbAcceleratorフックにあるvbalHook6.dllでvbAcceleratorキーボードフックを使用しました(この提案をしてくれたAlex Kに感謝します)。ランタイムエラー「429」が発生します。つまり、ActiveXオブジェクトを作成できません。プロジェクトで必要なDLLを参照し、レジストリサーバーユーティリティ(zippy32)を使用してWindowsにdllを登録しようとしましたが、エラーコード0x80004005で登録できません。ActiveXがオブジェクトを作成できない-vbAcceleratorを見ましたこれは、このタイプのエラーの理由とその解決策を具体的に説明していますが、私にはうまくいきませんでした。Keyboard Hook DLLで提供されるプロジェクトは、私のコンピューターでは正常に実行されますが、私のプロジェクトでは実行されません。手伝ってください...............:-| ありがとう..........
[アップデート]
再びAlexKの助けを借りて、必要なすべてのDLLを正常に登録しました。
しかし、何かが再びうまくいかなかった…。
IWindowsHook_HookProc
これは、アプリケーションでショートカットとして必要なキーの組み合わせを取得するためのメソッドのコードです。いずれかのキーが押された場合にアプリと一緒にVBをクラッシュさせる以下のコードの何が問題になっていますか?
保存(Ctrl + s)と開く(Ctrl + O)のショートカットも含めたいのですが、特定のキーの組み合わせを識別するために連鎖状態を形成するにはどうすればよいですか...?
Private Function IWindowsHook_HookProc(ByVal eType As EHTHookTypeConstants, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long, bConsume As Boolean) As Long
If KeyboardlParam(lParam).KeyDown Then
Select Case True
Case Me.ActiveControl = Me
If wParam = vbKeyControl + vbKeyN Then
frmNewReport.show
bConsume = True
End If
End Select
End If
終了機能