Не удается получить ручку TEdit от TPanel - PullRequest
2 голосов
/ 02 января 2012

У меня есть главное окно с TEdit и TButton, для которых мне нужны ручки.Они оба внутри TPanel.Мой код пока что

    public void SendPacket(string packet)
    {
        IntPtr hWnd = Window.FindWindow(null, "AlissaAnalyzer");
        IntPtr panel = Window.FindWindowEx(hWnd, IntPtr.Zero, "TPanel", "");
        IntPtr edithWnd = Window.FindWindowEx(panel, IntPtr.Zero, "TEdit", "");
        IntPtr buttonhWnd = Window.FindWindowEx(panel, IntPtr.Zero, "TButton", "");
        //Do stuff with handles
    }

Это дает мне дескрипторы для TPanel и TButton, но 0 для TEdit.Я понятия не имею, почему это не работает, поскольку оно следует структуре, которую дает мне Spy ++:

Spy++ Structure of Window

Есть что-то, что я здесь упускаю?Нужен ли другой метод, чтобы получить ручку для TEdit?Я неправильно использую FindWindowEx?

1 Ответ

5 голосов
/ 02 января 2012

Spy ++ показывает, что в окне редактирования нет текста. Странно, даже кнопка tButton не имеет подписи. Поиск tEdit должен сработать в первый раз, но на основе вашего другого вопроса, но как только вы отправите текст для редактирования, вызов FindWindowEx завершится неудачно, так как вы всегда передаете "" как текст. Вместо этого вы можете передать значение null, чтобы найти совпадение.

...