【症状】
マウスドラッグ、マウス右ドラッグ命令でドラッグ位置がずれる。
【再現方法】
母艦のX = 0
母艦のY = 0
母艦のキー押した時は~
もし、母艦の押された仮想キー == 13ならば
100, 100から200, 200へマウスドラッグ
「{机上マウスX}, {机上マウスY}」と言う
「Enter キーを押すとドラッグします」と表示
【要望】
指定した位置にドラッグできるように。
【バージョン】
1.551
【その他】
回避策として、なでしこで以下のように命令を定義しています。
参考まで。
# ここから -------------------
●マウスドラッグ(x1, y1からx2, y2へ|y2まで)
mwとは実数 = 65535/(デスクトップW-1)
mhとは実数 = 65535/(デスクトップH-1)
x1 = ROUND(x1*mw)
y1 = ROUND(y1*mh)
x2 = ROUND(x2*mw)
y2 = ROUND(y2*mh)
mouse_event(OR(MOUSEEVENTF_ABSOLUTE, MOUSEEVENTF_MOVE), x1, y1, 0, 0)
0.01秒待つ
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
0.01秒待つ
mouse_event(OR(MOUSEEVENTF_ABSOLUTE, MOUSEEVENTF_MOVE), x2, y2, 0, 0)
0.01秒待つ
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
!MOUSEEVENTF_ABSOLUTE = $8000
!MOUSEEVENTF_MOVE = $0001
!MOUSEEVENTF_LEFTDOWN = $0002
!MOUSEEVENTF_LEFTUP = $0004
●mouse_event(dwFlags, dx, dy, dwData, dwExtraInfo) = DLL("user32.dll",
"VOID mouse_event(
DWORD dwFlags, // 移動とクリックのオプション
DWORD dx, // 水平位置または移動量
DWORD dy, // 垂直位置または移動量
DWORD dwData, // ホイールの移動
ULONG_PTR dwExtraInfo // アプリケーション定義の情報
);")
# ここまで -------------------