|
04.06.2011, 15:15
|
#1
|
|
|
|
Рыцарь
|
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
|
Как можно "узанавать" окно?
Хочу написать программу для автоматического ввода логинов, паролей, ключей и различных наборов символов в любые поля ввода по средству эмуляции нажатия клавиш.
Идея состоит в том, что при нажатии горячей клавиши программа определит окно, посмотрит в своей базе какие строки сосуществуют этому окну и введет их в поля ввода.
Почти все готово, но есть небольшая загвоздка: по какому принципу лучше всего определять какое окно? Есть конечно пару идей по этому поводу, но они не очень нравятся. Интересно что мне здесь подскажут
________________
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
|
|
|
04.06.2011, 15:31
|
#2
|
|
|
|
Маршал
|
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
|
Re: Как можно "узанавать" окно?
Узнавай окно по заголовку и классу окна в чем вопрос то?
|
|
|
Пользователь сказал cпасибо:
|
|
04.06.2011, 15:41
|
#3
|
|
|
|
Сержант
|
Регистрация: 20.07.2010
Сообщений: 137
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 566 раз(а) в 197 сообщениях
|
Re: Как можно "узанавать" окно?
гугл: перебор открытых окон
Код:
var wnd: hwnd;
buff: array [0..127] of char;
begin
ListBox1.clear;
wnd := GetWindow(handle, gw_hwndfirst);
while wnd <> 0 do
begin // Не показываем:
if (wnd <> Application.Handle) // Собственное окно
and IsWindowVisible(wnd) // Невидимые окна
and (GetWindow(wnd, gw_owner) = 0) // Дочерние окна
and (GetWindowText(wnd, buff, SizeOf(buff)) <> 0) then
begin
GetWindowText(wnd, buff, SizeOf(buff));
ListBox1.Items.Add(StrPas(buff));
end;
wnd := GetWindow(wnd, gw_hwndnext);
end;
ListBox1.ItemIndex := 0;
end;
тут собирается текст с Caption окон. Далее, найдя нужные приложения ищешь их хендлы по названию окна (или запоминаешь их в момент перебора)
а дальше ищешь хендлы текст боксов в этих окнах. и функция вин апи WM_SETTEXT тебе поможет.
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 00:03.
|
|