mouse_event 関数
https://msdn.microsoft.com/ja-jp/library/cc410921.aspx
mouse_event()のMOUSEEVENTF_ABSOLUTEフラグって全然効いてなくね? って思ったら、
指定する座標がスクリーン座標系じゃなかったでござる。
0~65535で指定するのはわかったけど、マルチディスプレイだとどうなるんこれ。
MOUSEEVENTF_MOVE指定しないと座標指定しても意味ないのか。
てっきり指定座標でMOUSEEVENTF_RIGHTDOWNなりをしてくれるのかと思ってた。
mouse_event( MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE, clickPos.x, clickPos.y, 0, 0 );
↓
mouse_event( MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, clickPos.x, clickPos.y, 0, 0 );
ちゃんとMOUSEEVENTF_MOVEを指定して実験してみたところ、
メインモニタの座標になる様子だった。
メイン以外のモニタでMOUSEEVENTF_ABSOLUTEは多分できない。
指定座標でクリックさせるなら、
潔くSetCursorPos()してmouse_event()でクリック処理して、って流れのほうがシンプルでわかりやすいと思う。
0 件のコメント:
コメントを投稿