ウォークラフト3ゲームのボタンを操作できるかしら?spy++とControlViewerを介して取得しようとしましたが、メインのWC3ウィンドウしか使用できません。
それで、何かアイデアや提案はありますか?
ボタンのクリックをシミュレートしようとしています。ボタンの座標を使用してこれを行うことは可能だと思いますが、すべての画面解像度に対してそのような座標を計算できるかどうかはわかりません。どこかで間違えた場合は、訂正してください。
よろしくお願いします!
添加
WIN API
int x = 700;
int y = 70;
int lParam = ((x << 16) | (y & 0xffff));
int parentWindow = FindWindow("Warcraft III", "Warcraft III");
SendMessage(parentWindow, WM_LBUTTONDOWN, IntPtr.Zero, new IntPtr(lParam));
SendMessage(parentWindow, WM_LBUTTONUP, IntPtr.Zero, new IntPtr(lParam));
このようなコードは、Warcraft3ウィンドウを離れた後もアクティブなままになっているボタンを押します。
直接入力
public void testMouse()
{
INPUT input_down = new INPUT();
input_down.mi.dx = 700;
input_down.mi.dy = 70;
input_down.mi.mouseData = 0;
input_down.mi.dwFlags = (int)MOUSEEVENTF.LEFTDOWN;
INPUT input_up = input_down;
input_up.mi.dwFlags = (int)MOUSEEVENTF.LEFTUP;
INPUT[] input = { input_down, input_up };
SendInput(2, input, Marshal.SizeOf(input_down));
}
そのようなコードは何もしません。
どんな助けでも大歓迎です...