私はその人気のある質問を知っています。とにかく 私は他のプロセスのフォーム上のボタンをクリックしたい、私はスパイ++を介してボタンのハンドルを取得することはできませんので、マウスのクリックをシミュレートします。 私は何を得る:.net winapi postmessage
これはポイントのグローバル座標である、私はをクリックします:その後
doubleclickcoords = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
を、私は、フォームの座標を取得し、それは「mspaint」こと、及びポイントのローカル座標を見つけてみましょう、とポストメッセージを介して "クリック"を送信しようとしましたが、何も起こりません。私は??行方不明です:
public static void SendDoubleMouseClick()
{
IntPtr iHandle = GetWnd("mspaint");
Rectangle myRect = new Rectangle();
RECT rct;
if (!GetWindowRect(iHandle, out rct))
{
MessageBox.Show("ERROR");
}
else
{
myRect.X = rct.Left;
myRect.Y = rct.Top;
myRect.Width = rct.Right - rct.Left;
myRect.Height = rct.Bottom - rct.Top;
}
PostMessage(iHandle, 0x0201, 0, new IntPtr((doubleclickcoords.pt.y - myRect.Y) * 0x10000 + (doubleclickcoords.pt.x - myRect.X)));
PostMessage(iHandle, 0x0202, 0, new IntPtr((doubleclickcoords.pt.y - myRect.Y) * 0x10000 + (doubleclickcoords.pt.x - myRect.X)));
}
EDIT:言語は、C#、WINAPIはあなたが別のアプリケーションを自動化したい場合は、私はあなたがオートメーションAPIのウィッヒに見てみる示唆P /呼び出し
私はそれを試みます。どうも – eba