На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> C#: Keylogger
    Доброго времени суток!
    На зачёт сказали сделать кейлогер который пишет в файл только тогда когда активно окно у которого есть контрол с полем пасворд )

    Сам кейлогер не проблема, может ли кто-то подсказать как можно проверит есть ли у активного окна контрол с трушным полем пасворд ???
      Если только стандартный Edit (TextBox) используется в качестве поля для ввода пароля. Находим активное окно, перечисляем все его дочерние окна, ну и проверяем :)
        Ну это понятно
        Я знаю как перебрать все дочерние элементы, зная Control активного окна, но как его получить я не знаю ( известно только hWnd

        Добавлено
        Пробовал так

        IntPtr hWnd = GetForegroundWindow(); //получаем hWnd активного окна
        Control c = Control.FromHandle(tmp_hWnd);

        Но с остается null
          Не обязательно, что то, что ты получишь, будет именно Control'ом. Ещё может быть NativeWindow и ещё пару классов, которые Microsoft не выложил на поверхность.
            Тут Control почему нужен, ты сперва получи форму:
            ExpandedWrap disabled
              Form frm = Form.FromHandle(hWnd);
              coder, Form наследован от Control'а, так что если полученный Handle не получилось к Control привести, то уж к форме и подавно.
                Там было tmp_hWnd поэтому предложил, я сам тоже от хэндла получил формы и работал с ней. Если это будет нативная окна, тогда придется контролы получить по функцию FindWindowEx или EnumChildWindows.
                  Если все это на шарпе, то у формы есть коллекция контролов, по ней и надо бегать.
                  Зачем тут дескрипторы окон?
                  Или пишем на C++/WinApi/MFC?

                  PS. Автор темы сдал зачет и сгинул :crazy: .
                  Сообщение отредактировано: hd44780 -
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0305 ]   [ 16 queries used ]   [ Generated: 16.04.24, 22:20 GMT ]