Конференция "WinAPI" » Дескрипторы компонентов окна [D7, WinXP]
 
  • rand(256) (17.09.08 17:48) [0]
    Как получить дескрипторы всех компонентов "чужого" окна? Можно ли как-нибудь различить дескриптор какого типа компонента?
  • Renegat © (17.09.08 17:56) [1]
    Естественно можно. FindWindowEx в помощь. Только знайте: это будут дескрипторы не "компонентов", а дочерних окон.
    Программа может быть написана вообще не на Делфях, этого не стоит забывать.
    Получить имя оконного класса можно с помощью GetWindowLong + GWL_WNDCLASS.
  • rand() (17.09.08 18:20) [2]
    Ну это поиск окна... =) Проблема в поиске компонентов =)
    Приложение предположительно написано на сях. Но контролы хтмл =)
  • Renegat © (17.09.08 18:24) [3]
    Стоп-стоп. Какова ваша задача? Что вы хотите с найденными компонентами сотворить?
  • rand() (17.09.08 18:30) [4]
    считать текст. с компонента textarea
  • rand() (17.09.08 19:16) [5]
    я не прошу код) подскажите функции)
  • Германн © (17.09.08 19:22) [6]

    > rand()   (17.09.08 19:16) [5]
    >
    > я не прошу код) подскажите функции)
    >

    Винда знать не знает ни о каких компонентах. Так что функций помимо поиска окон нет.
  • rand() (17.09.08 19:44) [7]
    %|
    хм... а как тогда программно нажимают на кнопки в чужом окне?

    нашел такой код нажатия кнопки в "чужом" окне:
     h1 := FindWindow('tform2', nil);
     h2 := FindWindowEx(h1, 0, 'TBitBtn', '&No');
     SendMessage(h2, BM_CLICK, 0, 0);



    допустим мне повезло и я получил нужный мне дескриптор RichEdit или Memo,.. Можно ли считать оттуда текст?
  • Германн © (17.09.08 19:55) [8]

    > хм... а как тогда программно нажимают на кнопки в чужом
    > окне?
    >

    А кнопка в Винде такое же окно.
  • rand() (17.09.08 20:56) [9]
    понятно.

    > Можно ли считать оттуда текст?
  • DVM © (17.09.08 21:33) [10]
    Не всякая кнопка - окно.
  • Германн © (18.09.08 01:08) [11]

    > > Можно ли считать оттуда текст?

    Из окна можно. И лучше всё-таки вместо термина "дескриптор" употреблять термин handle. Меньше будет разночтений, имхо.
  • clickmaker © (18.09.08 13:02) [12]
    > Приложение предположительно написано на сях. Но контролы
    > хтмл

    там что, webbrowser?
  • rand() (18.09.08 15:22) [13]
    скорее всего webbrowser...
  • rand() (18.09.08 17:05) [14]
    плюс один вопрос сюда же. Как имея хэндл окна узнать его WindowName? Наверно используя wm_gettext... можно примерчик?)
  • rand() (18.09.08 17:18) [15]
    про последний вопрос можно забыть =)

    Как узнать хэндл активного окна в системе? GetActiveWindow - возвращает только хэндл активного окна текущего приложения... А если переключится на окно друго приложения, например, на калькулятор, то GetActiveWindow возвращает ноль =(
  • DVM © (18.09.08 21:03) [16]

    > rand()   (18.09.08 17:18) [15]


    > А если переключится на окно друго приложения, например,
    > на калькулятор, то GetActiveWindow возвращает ноль =(

    The GetActiveWindow function retrieves the window handle to the active window associated with the thread that calls the function.


    > Как узнать хэндл активного окна в системе?

    GetForegroundWindow
  • rand() (18.09.08 21:23) [17]
    о))) спасибо большое)))

    а что за зверь такой Internet Explorer_Server... И как с ним бороться?
    Какими путями можно добраться до содержимого загруженной им страничкой?
  • Сергей М. © (18.09.08 21:27) [18]

    > что за зверь такой Internet Explorer_Server


    Где такой живет ?)
  • rand() (18.09.08 21:33) [19]
    Это предположительно класс VB, выполняет функцию браузера. Видимо, чтото типа, TWebBrowser в делфи.
 
Конференция "WinAPI" » Дескрипторы компонентов окна [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]