Здравствуйте, имеется программа с исходным кодом на c++. В программе есть 3 кнопки, как мне сделать клик по ним на С# или autoit. Проблема в том, что для идентификации элемента(кнопок) я использовал Microsoft Spy++, Windows hack 3.0, autoit Info. Но ни одна из программ не видит кнопок, есть только хэндл окна программы. Например для клика по кнопке "Открыть" в другой программе я использовал такой С# код:
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
//подключаем поиск окна
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string windowName);
//подключаем SendMessage
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
const int WM_LBUTTONDOWN = 0x0201;
const int WM_LBUTTONUP = 0x0202;
const int Enter = 13;
const int Tab = 9;
const int WM_CLOSE = 0x10;
const int WM_ACTIVATE = 0x1C;
const int WM_DESTROY = 0x2;
[DllImport("User32.dll")]
private static extern int SendMessage(IntPtr HWND, int Msg, int wParam, StringBuilder lParam);
const int WM_GETTEXT = 0xD;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, string lParam);
const int WM_SETTEXT = 0x000C;
IntPtr button1 = FindWindowEx(calcWnd, IntPtr.Zero, "Button", "Открыть");
SendMessage(button1, WM_LBUTTONDOWN, 1, 0x150018);
SendMessage(button1, WM_LBUTTONUP, 0, 0x150018);
так вот как мне найти элемент? или мб есть другие варианты реализации?
P.S. программа не моя, хотел пересобрать ее, изменив надписи кнопок, но вылетают ошибки(возможно не все до конца установил в VS 2017)