Конференция "Corba" » Получение свойств COM-объектов расположенных на форме [C++ (WINAPI), Windows]
 
  • niko_ © (24.07.07 17:01) [0]
    Многим из Вас известна небольшая утилитка Spy++, с её помощью можно узнать свойства всех объектов (окон) отображаемых на экране.
     Есть также утилитка похожая на Spy++, называется она AccExplorer. С её помощью можно просматривать свойства тех же объектов но только рассматривая их как COM-обекты, а не окна (если это возможно конечно).
     И вот у меня появилась потребность просмотреть свойства окна как COM-объекта. Подскажите как мне этого добится.
  • clickmaker © (24.07.07 17:16) [1]

    > свойства окна как COM-объекта

    окно - не COM-объект
  • niko_ © (24.07.07 17:26) [2]
    Ну этоя понимаю. Но с ним ведь как то связан COM-объект который как раз и показывает AccExplorer при наведении на то же окно. Его то свойства получить можно, так же как и эта прога. Вот как добраться до них через хендл окна?
  • clickmaker © (24.07.07 18:41) [3]

    > с ним ведь как то связан COM-объект который как раз и показывает
    > AccExplorer

    какой например? в какой программе, на каком окне?
  • niko_ © (24.07.07 22:32) [4]
    :) вообще меня интересует поле для ввода пароля при входе в Windows в графическом режиме.

    Хендл данного окна получить не сложно, но это не много не то.
    Программа AccExplorer данное поле ввода видет как COM-объект со своими свойствами, разумеется пароль она не показывает :). Вот эти свойства то мне узнать и надо.
  • clickmaker © (25.07.07 12:31) [5]
    а, так ты про IAccessible
    ну так это интерфейс, который реализует окно. Но само по себе оно ком-объектом не является. Это просто некая структура данных с обработчиком сообщений
  • niko_ © (25.07.07 13:01) [6]
    Я просто (как уже наверное стало очевидно) с COM'ами не очень хотошо общаюсь.

    Подскажите, пожалуйста, как имея в распоряжении только хендл окна получить интересующие меня свойства (описаные выше) ???

    Что то мне подсказывает, что Вы, clickmaker, можете мне помочь.
  • clickmaker © (25.07.07 13:25) [7]

    > [6] niko_ ©   (25.07.07 13:01)

    а почему интересует именно поле для ввода пароля?
  • niko_ © (25.07.07 13:32) [8]
    Если оно появилось мне надо узнать к какому пользователю оно относится. В интересующих меня свойствах это дело проскакивает.
  • clickmaker © (25.07.07 13:45) [9]
    имя пользователя узнать? GetUserName() не подойдет?
  • niko_ © (25.07.07 13:53) [10]
    :) издеваетесь, да.

    А просто подсказать не судьба?

    Вход в систему в графическом режиме (допустим отображены 3 пользователя для входа, второй под паролем).
    При нажатии на 2 пользователя появляется поле для ввода пароля. Вот в этот момент и надо узнать к какому пользователю (его имя) относится данныое поле ввода.
  • clickmaker © (25.07.07 14:12) [11]
    где "при входе в Windows в графическом режиме" отображаются целых три пользователя?
  • niko_ © (25.07.07 14:36) [12]
    Сколько зарегестрировано столько и появится (я написал: допустим отображены 3 пользователя)
  • clickmaker © (25.07.07 14:44) [13]
    погоди. в окошке для входа в винду есть поле для ввода юзера. По умолчанию там - последний залогинившийся. И всё. Где остальные?
  • niko_ © (25.07.07 15:21) [14]
    Есть 2 впособы входа в систему:
    1. Диологовый (то о чём говорите Вы)
    2. Графический (то о чём говорю я)

    Настройки -> Панель управления -> Учётные записи пользователей:

    -> Изменить вход пользователей в систему
        v Использовать страницу приветствия
  • clickmaker © (25.07.07 15:46) [15]
    а, это...
    ну в любом случае можно выяснить класс окна, потом FindWindowEx, потом WM_GETTEXT
  • niko_ © (25.07.07 16:00) [16]
    это всё я знаю  -  но так имени пользователя не узнать, оно там ни где не фигурирует.

    А вот интерфейс IAccessible, реализующий данное окно (как Вы выше сказали) содержит такую информацию, программа AccExplorer это показала.

    В очередной раз прошу, если можите, подскажите как мне добраться до этого (наверное этого) интерфейса у данного объекта и получить его свойства.
  • clickmaker © (25.07.07 16:04) [17]
    AccessibleObjectFromWindow()
  • niko_ © (25.07.07 16:30) [18]
    Покопаю в этом направлении.

    А какие ещё интерфейсы могут "сопровождать" IAccessible интерфейс.
 
Конференция "Corba" » Получение свойств COM-объектов расположенных на форме [C++ (WINAPI), Windows]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]