Я пытаюсь установить выбранное для текста и списка значение следующих двух дескрипторов:
1) На первом изображении ниже: дескриптор «Выбрать файл базы данных» родительский - Изменить, текстовое поле и установить его свойство. Я могу получить родительский дескриптор, но не могу получить дочерний элемент Edit (текстовое поле) и установить для него свойство текста.
//Getting Parent Handle
IntPtr hwnd = (IntPtr)Win32.Functions.FindWindow(null, "Select Database File");
//Attempting to get child handle
IntPtr h =
(IntPtr)Win32.Functions.FindWindowEx(hwnd, IntPtr.Zero, "Edit", null);
if (h != IntPtr.Zero)
{
//setting text
Win32.Functions.SetWindowText((IntPtr)h, "qwerty");
}
Follow Является ли рекурсивная функция, в которой я передаю дескриптор Parent, но при этом возвращается значение дескриптора вместо имя окна / класса, где я могу редактировать / приводить дочерний дескриптор, который мне нужен. publi c stati c Список GetAllChildrenWindowHandles (IntPtr hParent, int maxCount) {
List<IntPtr> result = new List<IntPtr>();
int ct = 0;
IntPtr prevChild = IntPtr.Zero;
IntPtr currChild = IntPtr.Zero;
while (true && ct < maxCount)
{
currChild = (IntPtr)Win32.Functions.FindWindowEx(hParent, prevChild, null, null);
if (currChild == IntPtr.Zero) break;
result.Add(currChild);
prevChild = currChild;
++ct;
}
return result;
}
2) Из второго нужного мне изображения чтобы получить список (000DD04A4) из родительского дескриптора (00300762) и выбрать первый элемент в списке,