Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.188.16] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток!
На зачёт сказали сделать кейлогер который пишет в файл только тогда когда активно окно у которого есть контрол с полем пасворд ) Сам кейлогер не проблема, может ли кто-то подсказать как можно проверит есть ли у активного окна контрол с трушным полем пасворд ??? |
Сообщ.
#2
,
|
|
|
Если только стандартный Edit (TextBox) используется в качестве поля для ввода пароля. Находим активное окно, перечисляем все его дочерние окна, ну и проверяем
|
Сообщ.
#3
,
|
|
|
Ну это понятно
Я знаю как перебрать все дочерние элементы, зная Control активного окна, но как его получить я не знаю ( известно только hWnd Добавлено Пробовал так IntPtr hWnd = GetForegroundWindow(); //получаем hWnd активного окна Control c = Control.FromHandle(tmp_hWnd); Но с остается null |
Сообщ.
#4
,
|
|
|
Не обязательно, что то, что ты получишь, будет именно Control'ом. Ещё может быть NativeWindow и ещё пару классов, которые Microsoft не выложил на поверхность.
|
Сообщ.
#5
,
|
|
|
Тут Control почему нужен, ты сперва получи форму:
Form frm = Form.FromHandle(hWnd); |
Сообщ.
#6
,
|
|
|
coder, Form наследован от Control'а, так что если полученный Handle не получилось к Control привести, то уж к форме и подавно.
|
Сообщ.
#7
,
|
|
|
Там было tmp_hWnd поэтому предложил, я сам тоже от хэндла получил формы и работал с ней. Если это будет нативная окна, тогда придется контролы получить по функцию FindWindowEx или EnumChildWindows.
|
Сообщ.
#8
,
|
|
|
Если все это на шарпе, то у формы есть коллекция контролов, по ней и надо бегать.
Зачем тут дескрипторы окон? Или пишем на C++/WinApi/MFC? PS. Автор темы сдал зачет и сгинул . |