Шпион за едитом
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Шпион за едитом - 2007-03-03 17:18:43.816666
|
|
|
Bitldjus
Сообщений: 1
Оценки: 0
Присоединился: 2007-03-03 17:05:59.016666
|
Привет всем. Вопрос - нужно сохранить строку из определенного едита конкретного окна. Я знаю это можно сделать через хуки. (что то там на счет хендла для поиска). Вообщем пользователь вводит пароль в аське (допустим;)), а программа записывает что он ввел в Edit2 в файл и сохраняет его куданить далеко далеко:) Кто поможет? (язык Делфи, Билдер Си)
|
|
|
RE: Шпион за едитом - 2007-03-03 18:26:37.576666
|
|
|
Technologist
Сообщений: 3590
Оценки: 0
Присоединился: 2006-10-28 20:28:06.943333
|
Эта тема вроде обсуждалась на форуме, так что поищи.
|
|
|
RE: Шпион за едитом - 2007-03-03 20:44:07.646666
|
|
|
je0n
Сообщений: 126
Оценки: 0
Присоединился: 2004-07-05 23:40:07
|
короче тебе нужно будет сначал найти этот. API-функции FindWindow() GetNextWindow() Как ими пользоваться поищи в сети. Это ты получишь хендл нужного тебе едита Чтобы получить текст из едита - API-функция GetWindowText() как юзать ищи в сети. Вообще на тему как управлять элементами в чужих программах была афигенная статья в хакере. Там пишеться про то как управлять WebMoney клиентом. и все примеры на дельфи - как тебе и надо. вот тебе: http://www.xakep.ru/magazine/xa/067/042/1.asp
|
|
|
RE: Шпион за едитом - 2007-03-03 21:45:43.936666
|
|
|
voody
Сообщений: 958
Оценки: 0
Присоединился: 2005-02-06 22:28:30
|
je0n, хочу сказать, что функция GetWindowText() может прочитать заголовок окна, но не текст из разных текстовых элементов управления. Автору: эта тема действительно уже обсуждалась. Но, так уж и быть, повторю. Вот код: WPARAM BufferLength = SendMessageA(WinHandle, WM_GETTEXTLENGTH, NULL, NULL); char *Buffer = new char[BufferLength+1]; SendMessageA(WinHandle, WM_GETTEXT, BufferLength+1, (LPARAM)Buffer); В этом примере переменная WinHandle должна быть типа HWND и иметь в себе хэндл нужного окна. После выполнения кода в переменной Buffer будет указатель на строку с прочитанным текстом.
|
|
|
RE: Шпион за едитом - 2007-03-19 00:12:12.240000
|
|
|
NEFFboy
Сообщений: 204
Оценки: 0
Присоединился: 2007-03-18 11:11:02.040000
|
Используем функцию FindWindow
var
ApplicWnd:HWND;
begin
while ApplicWnd=0 do
ApplicWnd:=FindWindow(nil,PChar('Заголовок_приложения'));
Потом функцию GetWindow
|
|
|
RE: Шпион за едитом - 2007-03-21 21:26:37.473333
|
|
|
voody
Сообщений: 958
Оценки: 0
Присоединился: 2005-02-06 22:28:30
|
quote:
ORIGINAL: NEFFboy Используем функцию FindWindow
var
ApplicWnd:HWND;
begin
while ApplicWnd=0 do
ApplicWnd:=FindWindow(nil,PChar('Заголовок_приложения'));
Потом функцию GetWindow Я уже дал человеку готовый рабочий пример кода. Зачем повторяться, давая недоделанный, выполняющий совершенно не то, что просит автор? Причем тут FindWindow и GetWindow? Эти функции нужны для получения хэндла, но уж никак не для прочтения текста из эдита.
|
|
|
RE: Шпион за едитом - 2007-03-22 08:44:11.143333
|
|
|
NEFFboy
Сообщений: 204
Оценки: 0
Присоединился: 2007-03-18 11:11:02.040000
|
quote:
Эти функции нужны для получения хэндла, но уж никак не для прочтения текста из эдита. Так едит то не в воздухе висит;)
|
|
|
RE: Шпион за едитом - 2007-03-23 01:25:29.460000
|
|
|
voody
Сообщений: 958
Оценки: 0
Присоединился: 2005-02-06 22:28:30
|
quote:
ORIGINAL: NEFFboy quote:
Эти функции нужны для получения хэндла, но уж никак не для прочтения текста из эдита. Так едит то не в воздухе висит;) Как сказать. По крайней мере, я думаю, что автор в состоянии самостоятельно получить хэндл нужного окна. Если же он не может передать 2 параметра функции (один из которых - NULL), то о каком программировании может идти разговор впринципе?
|
|
|
|
|