C#でマウスホイールの動作をさせる方法

C#からWindows APIを叩いてマウスホイールの上/下回転の動作をさせる方法を紹介する。

使うAPIは、GetCursorPosとSendInputの2つ。

マウスポインタを移動させる方法を紹介する記事で説明したようにビルドの警告を回避するために次のようにNativeMethodsクラスをつくり、その中でこれらAPIを読み込む。

構造体や共用体の定義が多いのでびびるかもしれないけど、使うAPIはあくまで2つだけで、使う構造体もツリー構造でつながっていたりするので迷うポイントは少ないと思う。(もちろん、APIの公式ドキュメントで定義は確認しておくべき)

そしてこのNativeMethodsクラスを次のように使う。この例ではマウスホイールを3段階下に回転する動作を行う。

ここで、3段階というのは、マウスホイールを回したときにある「カクッ、カクッ」という感触が3回起こることを言う。

マウスホイールの上回転の動作をさせたい場合は、amountの値をプラスにしてやればよい。

ネットで検索するとmouse_event関数を使う方法が多数見つかるけど、この関数は既にSendInput関数に置き換えられたという公式情報があるので注意。


関連ページ:マウス・キーボード操作の自動化機能をつくろう

コメントする