0

私の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

終了機能

4

1 に答える 1

1

そのUAC/許可エラー。vista / win7でコマンドプロンプトアイコンを右クリックした場合は、[管理者として実行]を選択してからregsvr32 c:\whatever\xxxx.dll

于 2010-08-13T11:03:28.427 に答える