Я знаю его популярный вопрос.тем не мение.Я хочу нажать кнопку в форме другого процесса, я не могу получить дескриптор кнопки через Spy ++, поэтому я буду имитировать щелчок мыши.что я получаю:
это глобальные координаты точки, я хочу щелкнуть:
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)));
}
РЕДАКТИРОВАТЬ: язык c #, winapi через p / invoke