2015年3月11日水曜日

日記ちゃん

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 件のコメント: