日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2022-03-24 22:23:25

Re①:左右のマウスボタンを同時押ししながら一定量ドラッグさせる命令文

雪乃☆雫 さん

 なでしこの命令では、左でのドラッグと右でのドラッグしかないんですよね~。
 マウスのボタン操作も、なぜか左クリックと右クリックしかありません。
 クリックは押して離すがセットなので、押したままマウス移動とゆうのも出来ないんですよね。
 で!
 押すだけ、離すだけを、mouse_eventのAPIでやってみました。
 押した状態でマウス移動すればドラッグになります。
 一応手元では、同時押しでのドラッグできました☆
 色々良きようにいじって、うまく動作するように試してみて下さい。
#-----------------------------------------------------------
#左右同時押しでドラッグ
●マウス左右ドラッグ(X1,Y1からX2,Y2へ|Y2まで)
 X1,Y1へマウス移動。
 0.5秒待つ。
 マウス左右押す。
 0.5秒待つ。
 X2,Y2へマウス移動。
 0.5秒待つ。
 マウス左右離す。

#---マウス操作追加命令--------------------------------------
#定数(mouse_eventAPIのdwFlagsに指定するフラグ)
!MOUSEEVENTF_ABSOLUTEとは整数=$8000 # dx,dyの絶対座標指定。指定しない場合は最後の位置からの相対移動量となる。
!MOUSEEVENTF_MOVEとは整数=$1    # マウス移動。
!MOUSEEVENTF_LEFTDOWNとは整数=$2  # 左ボタン押す。
!MOUSEEVENTF_LEFTUPとは整数=$4   # 左ボタン離す。
!MOUSEEVENTF_RIGHTDOWNとは整数=$8  # 右ボタン押す。
!MOUSEEVENTF_RIGHTUPとは整数=$10  # 右ボタン離す。
!MOUSEEVENTF_MIDDLEDOWNとは整数=$20 # 中央ボタン押す。
!MOUSEEVENTF_MIDDLEUPとは整数=$40  # 中央ボタン離す。
#-----------------------------------------------------------
●マウス左押す
 mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
●マウス左離す
 mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
●マウス右押す
 mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
●マウス右離す
 mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
●マウス左右押す
 mouse_event(MOUSEEVENTF_LEFTDOWN||MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
●マウス左右離す
 mouse_event(MOUSEEVENTF_LEFTUP||MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
#-----API---------------------------------------------------
●mouse_event(dwFlags,dx,dy,dwData,dwExtraInfo) =DLL("user32.dll", "void mouse_event(
    int dwFlags, // フラグ
    int dx,      // マウスX
    int dy,      // マウスY
    int dwData,  // ホイールの移動量
    int dwExtraInfo //マウスイベントに関連付けられた32ビットの追加情報(?)
)")
/*
dx,dyについて
 MOUSEEVENTF_ABSOLUTEを指定した場合、0~65535。(0,0)は画面の左上隅、(65535,65535)が画面の右下隅となるので注意!
 MOUSEEVENTF_ABSOLUTEを指定し無かった場合はピクセル単位で、プラスで(右,下)方向、マイナスで(左,上)方向への移動となる。
*/
#-----------------------------------------------------------



(編集パスワード送信)

子記事

親記事 (No.1268)
返信した記事(元) (No.1268)

この内容(No.1270)に返信

この内容(No.1270)をダウンロード

この内容(No.1270)のテキスト表示





www.eznavi.net