マウスカーソルの移動とクリックをエミュレーションさせてみる。
フォーム上のボタンを押すと、
左下のスタートボタン付近にカーソルが移動後、クリックするコード
・FormにButtonコンポーネントを配置してから。
<Unit1.cpp>
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// まずはスタートボタンの上付近に移動
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 400, 64900, 0, NULL);
// 左クリックしてみる
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, NULL);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, NULL);
}
//---------------------------------------------------------------------------
・参考
VOID mouse_event(
DWORD dwFlags, // 移動とクリックのオプション
DWORD dx, // 水平位置または移動量
DWORD dy, // 垂直位置または移動量
DWORD dwData, // ホイールの移動
ULONG_PTR dwExtraInfo // アプリケーション定義の情報
);
dwFlags
MOUSEEVENTF_ABSOLUTE dx と dy の各パラメータは 0〜65,535 の範囲で
正規化された絶対座標。指定無しは相対座標
左上(0,0) - 右下(65535,65535)
MOUSEEVENTF_MOVE マウスが移動したことを示します。
MOUSEEVENTF_LEFTDOWN 左ボタンが押されたことを示します。
MOUSEEVENTF_LEFTUP 左ボタンが離されたことを示します。
MOUSEEVENTF_RIGHTDOWN 右ボタンが押されたことを示します。
MOUSEEVENTF_RIGHTUP 右ボタンが離されたことを示します。
MOUSEEVENTF_MIDDLEDOWN 中央ボタンが押されたことを示します。
MOUSEEVENTF_MIDDLEUP 中央ボタンが離されたことを示します。
MOUSEEVENTF_WHEEL 移動量は、dwData パラメータで指定します。
dwData
MOUSEEVENTF_WHEELを指定した場合の移動量
120が前方、-120で後方回転