■91702 / inTopicNo.2) |
Re[1]: ドライバレベルでのwindows10でのマウスクリックの実現 |
□投稿者/ とっちゃん (609回)-(2019/07/22(Mon) 18:10:17)
|
■No91701 (tori さん) に返信
> 以下のURLを参照し、C#からのマウスの自動クリックを試みました。 > http://whoopsidaisies.hatenablog.com/entry/2013/03/22/142031 > ですが、特定のアプリはmouse_eventを受け付けないようでして、 > HIDドライバからのアクセスでなければ、特定のアプリはC#からのマウスクリックを受け付けてくれないことがわかりました。
どういう処理をした結果、うまく受け入れられなかったのでしょうか? mouse_event を受け入れないということはないはずなんですが。。。
ちなみに。。。参考にしたページの mouse_event の定義は間違ってますね(影響はなさそうですけど)。
下記が mouse_event API の宣言(最新のSDKからの抜粋)です。
WINUSERAPI VOID WINAPI mouse_event( _In_ DWORD dwFlags, _In_ DWORD dx, _In_ DWORD dy, _In_ DWORD dwData, _In_ ULONG_PTR dwExtraInfo);
一つ目のパラメータはdefine フラグの組み合わせなので、C# 的には Flags 属性つけた enum がいいでしょう。 最後の、ULONG_PTR は、System.UintPtr と同じ意味なのでそういう風にしておくのが良いと思います(IntPtrでも一緒ですが)。
ということでザクっとこんな感じ。
[Flags] enum MouseEventFlags : uint { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, MiddleDown = 0x0020, MiddleUp = 0x0040, XDown = 0x0080, XUp = 0x0100, Wheel = 0x0800, HWheel = 0x1000, VirutalDesk = 0x4000, Absolute = 0x8000 } [DllImport("User32.dll", CallingConvention=CallingConvention.Winapi)] static extern void mouse_event( MouseEventFlags dwFlags, UInt32 dx, UInt32 dy, UInt32 dwData, UIntPtr dwExtraInfo);
> visual studio2019 communityから、HIDドライバを使ってC#からマウスを自動でクリックできる方法を > ご教授いただけないでしょうか。 > マウスクリック(X座標、Y座標、クリック間隔) > といったコマンドでクリックができるようになりたいです。
HIDドライバにアプリケーションからアクションを行うことができないと思います。
mouse_event が受け入れられないということはないと思いますが、どういうコードなのかわからないので何とも言えない。。。
|
|