1

C# にあるこのコードを VB.NET で使用しようとしています。このコードの目的は、コンソール アプリケーションを使用して、マウス ボタンをクリックしたときにマウスの座標を読み取って出力することです。はい、これがコンソール アプリケーションのばかげた使い方であることは承知していますが、私が実行したいプロジェクトには必要かもしれません。C# で動作させることができましたが、VB.NET ではこの領域でエラーが発生します。

Private Shared _proc As LowLevelMouseProc = HookCallback()

C# の行は次のとおりです。

private static LowLevelMouseProc _proc = HookCallback;

HookCallback 関数には 3 つのパラメーターがあり、以下のコードを含めました。

private static IntPtr HookCallback(
        int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0 &&
                MouseMessages.WM_LBUTTONDOWN == (MouseMessages)wParam)
            {
                MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
                Console.WriteLine(hookStruct.pt.x + ", " + hookStruct.pt.y);
            }
            return CallNextHookEx(_hookID, nCode, wParam, lParam);
        }

C# コードの何らかの理由で、パラメーターがリストされていない HookCallback 関数を呼び出しますが、これはまったく問題ありません。VB.NET では、予想どおり、これは機能しません。私の質問は次のとおりです。これを VB.NET で機能させるにはどうすればよいですか? 私は C# を初めて使用します。それ以外の場合は、C# コードを使用します。

4

0 に答える 0