나는 그 대중적인 질문을 안다. 어쨌든. 다른 프로세스의 형태로 버튼을 클릭하고 싶습니다. 스파이 ++를 통해 버튼을 처리 할 수 없으므로 마우스 클릭을 시뮬레이션합니다. 내가 무엇을 얻을 :.net winapi postmessage
이 내가 클릭 원 포인트의 전역 좌표입니다, 그 이후
doubleclickcoords = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
난 형태의 좌표를 얻을이 될 "MSPAINT"하자 및 지점의 로컬 좌표를 찾아 postmessage를 통해 "click"을 보내려고하지만 아무 일도 일어나지 않습니다. 나는 무엇 ?? 실종 :
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)));
}
편집 : 언어는 C#을, p를 통한 WINAPI/다른 응용 프로그램을 자동화하려는 경우 당신이 자동화 API 느릅 나무에 모습을 의미 보시기 바랍니다,
나는 그것을 시도 할 것이다. 고마워 – eba