1

.NETで作成されたアプリケーションがあります。10〜15個のボタンが付いたマウス(ハイエンドのゲーミングマウスなど)を使用して、ユーザーがアプリケーションを制御できるようにしたいと思います。

これは簡単に実行できますか、それとも使用できる.NET SDKを備えたマウスベンダーが必要ですか?推奨できますか?

すべてのコントロールをアプリケーション内に配置し、マウスベンダードライバーのみを使用したいと思います。

4

3 に答える 3

1

私が間違っている場合は訂正してください。ただし、マウスのこれらの余分なボタンはすべて、通常、ある種のキーボードの組み合わせにマップされません(多くの場合、どのボタンが何にマップされるかを指定できるコントロールパネルアプリがあります)。この場合、KeyDownイベントとKeyUpイベントを使用してボタン4以上をキャプチャできるはずです。

于 2009-06-30T14:57:17.613 に答える
0

Windowsでは、何かを押すたびに、win32メッセージキューを通過します。これらのメッセージを取得する方法を確認するためのコードを次に示します。

これで(もちろん15ボタンのマウスが必要になります)、ブレーキポイントまたはConsole :: writelineまたはそのコード内の何か、マウスボタンを押して強打すると、押したばかりのメッセージ番号を取得できます。

その後、これらのキー押下を通常のイベントハンドラーにバインドできるかどうかを確認できます。

ベンダーのハードウェアの制御に関するソリューションは、あまり移植性がないことに注意してください。誰もがマイクロソフトのマウスを持っていると仮定しますが、香港などから20ボタンのマウスを購入することにしました。それをサポートするには、新しいコードを作成する必要があります。私はあなたが非常に一般的な解決策を目指すべきだと思います

于 2009-06-30T15:07:08.157 に答える
0

Windowsメッセージの取得を試みることができます。たとえば、WinFormsでは、フォームのメソッドをオーバーライドして、すべてのメッセージを取得できます。

    protected override void WndProc(ref Message msg)
    {
        Console.WriteLine(
          "HWnd:{0}\tLParam:{1}\tWParam:{2}\tMsg:{3}\tResult:{4}",
          msg.HWnd, msg.LParam, msg.WParam, msg.Msg, msg.Result);
        base.WndProc(ref msg);
    }

そして、マウスで少し遊んで、あなたが取らなければならないメッセージが何であるかを見てください。

于 2009-06-30T15:09:52.300 に答える