|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.10.2006, 11:27 | #1 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
работа с "чужими" окнами
Перенесено из старого форума!
Gambler Доброго времени суток! Недавно я встретил прогу, регистроция которой представляет из себя простой пароль (4 блока по 4 символа) и решил сломать его "в лоб". Но перебирать миллионы вариантов в ручную не хочется. Отсюда вопрос: Как втыкать 4 символа в блок, переходить в другой блок (так переходит по Tab), и по заполнению блоков символами нажимать на Enter. |
29.10.2006, 11:28 | #2 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Перенесено из старого форума!
plague procedure ClickKey(key:word); begin keybd_event(key,0,0,0); keybd_event(key,0,KEYEVENTF_KEYUP,0 ); end; // Эмуляция нажатия кнопки key=9 - это Tab key=ord('a') - это символ 'a' и т.д. plague Var H:HWND; h:=findwindow(nil,'Password Entry'); // ищет окно с Caption = 'Password Entry' setforegroundwindow(h); // делает окно активным ну дальше ClickKey(...) какие тебе нужно. rpy3uH там у тебя 36 в 16-ой степени вариантов ты примерно 100 лет будешь их перебирать. Gambler Ну и кто говорил о каких-то 100 годах? Мой комп с поцем 2.8 Ghz справился с паролем за 25 мин. Я конечно не говорю что у меня был сложнейший пароль, он вообще оказался цифровым, но 16-тизначное число за 25 минут....и это еще на неоптимизированном алгоритме. По – моему неплохо. plague function EnumerateWindows(h: HWND; lParam: LPARAM): BOOL; stdcall; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Clear; EnumWindows(@EnumerateWindows,0); end; function EnumerateWindows(h: HWND; lParam: LPARAM): BOOL; var txt:array[0..255] of char; begin GetWindowText(h, txt, 255); Form1.ListBox1.Items.Add(Format('%d <-> %s',[h, txt])); Result:=TRUE; end; там выведится весь список окон вержнего уровня и фунцией setforegroundwindow(h); можно по значению обратится к любому |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) | Dorvir | Microsoft Office Excel | 2 | 28.03.2008 10:03 |
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" | MAcK | Компоненты Delphi | 11 | 24.10.2007 10:49 |
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" | Tayfun | Свободное общение | 3 | 26.06.2007 20:27 |