Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2012, 10:29   #11
pepesina
Пользователь
 
Регистрация: 12.07.2012
Сообщений: 15
По умолчанию

Что так и никто мне не поможет(((....?
pepesina вне форума Ответить с цитированием
Старый 13.07.2012, 14:28   #12
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
h:=FindWindow(PChar('TeamViewer'),n il);
Это перепутано местами.

Едитов там несколько, поэтому циклически искать надо. Дополнительно надо распознать какой едит чему соответствует. Для этого ищем уникальное свойство, например, высоту едитов относительно формы. Высоту едитов относительно формы можно узнать с помощью WinSpy++.
Код:
var
  h,h1:HWND;
  s: string;
  r1: TRect;
begin
  h:=FindWindow(nil, PChar('TeamViewer'));
  h1:=FindWindowEX(h,0,PChar('Edit'),nil);
  SetLength(s, 12);//собственно, 12 вполне хватит - пароль ведь не длинный должен быть?
  while h1<>0 do begin
    Winapi.Windows.GetWindowRect(h1, r1);//эх как длино-то в XE2 :)
    Winapi.Windows.ScreenToClient(h, r1.TopLeft);
    SendMessage(h1, WM_GETTEXT, 12, integer(s));
    if r1.Top = 166  then showmessage('код: '+s);
    if r1.Top = 197 then showmessage('пароль: '+s);
    h1:=FindWindowEX(h,h1,PChar('Edit'),nil);
  end;
end;
Чтобы реагировать на изменения текста, либо перехват либо таймер.

Последний раз редактировалось eoln; 13.07.2012 в 14:32. Причина: поправка
eoln вне форума Ответить с цитированием
Старый 13.07.2012, 14:39   #13
pepesina
Пользователь
 
Регистрация: 12.07.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Это перепутано местами.

Едитов там несколько, поэтому циклически искать надо. Дополнительно надо распознать какой едит чему соответствует. Для этого ищем уникальное свойство, например, высоту едитов относительно формы. Высоту едитов относительно формы можно узнать с помощью WinSpy++.
Код:
var
  h,h1:HWND;
  s: string;
  r1: TRect;
begin
  h:=FindWindow(nil, PChar('TeamViewer'));
  h1:=FindWindowEX(h,0,PChar('Edit'),nil);
  SetLength(s, 12);//собственно, 12 вполне хватит - пароль ведь не длинный должен быть?
  while h1<>0 do begin
    Winapi.Windows.GetWindowRect(h1, r1);//эх как длино-то в XE2 :)
    Winapi.Windows.ScreenToClient(h, r1.TopLeft);
    SendMessage(h1, WM_GETTEXT, 12, integer(s));
    if r1.Top = 166  then showmessage('код: '+s);
    if r1.Top = 197 then showmessage('пароль: '+s);
    h1:=FindWindowEX(h,h1,PChar('Edit'),nil);
  end;
end;
Чтобы реагировать на изменения текста, либо перехват либо таймер.
Winapi что ето за переменная? в етих строчках ошибка?
pepesina вне форума Ответить с цитированием
Старый 13.07.2012, 14:47   #14
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от pepesina Посмотреть сообщение
Winapi что ето за переменная? в етих строчках ошибка?
Это так в XE2, я же намёк в комментах дал. Пиши без этого WinApi, просто Windows.GetWindowRect
eoln вне форума Ответить с цитированием
Старый 13.07.2012, 14:50   #15
pepesina
Пользователь
 
Регистрация: 12.07.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Это так в XE2, я же намёк в комментах дал. Пиши без этого WinApi, просто Windows.GetWindowRect
Большое Вам спасибо!!Как я могу Вас отблагодарить!!!!
Вы реально профессионал своего дела!!!На 6 форумах никто не мог дать ответ!
pepesina вне форума Ответить с цитированием
Старый 13.07.2012, 14:57   #16
pepesina
Пользователь
 
Регистрация: 12.07.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Это перепутано местами.

Едитов там несколько, поэтому циклически искать надо. Дополнительно надо распознать какой едит чему соответствует. Для этого ищем уникальное свойство, например, высоту едитов относительно формы. Высоту едитов относительно формы можно узнать с помощью WinSpy++.
Код:
var
  h,h1:HWND;
  s: string;
  r1: TRect;
begin
  h:=FindWindow(nil, PChar('TeamViewer'));
  h1:=FindWindowEX(h,0,PChar('Edit'),nil);
  SetLength(s, 12);//собственно, 12 вполне хватит - пароль ведь не длинный должен быть?
  while h1<>0 do begin
    Winapi.Windows.GetWindowRect(h1, r1);//эх как длино-то в XE2 :)
    Winapi.Windows.ScreenToClient(h, r1.TopLeft);
    SendMessage(h1, WM_GETTEXT, 12, integer(s));
    if r1.Top = 166  then showmessage('код: '+s);
    if r1.Top = 197 then showmessage('пароль: '+s);
    h1:=FindWindowEX(h,h1,PChar('Edit'),nil);
  end;
end;
Чтобы реагировать на изменения текста, либо перехват либо таймер.
подскажите,еще как перехват делать?!
pepesina вне форума Ответить с цитированием
Старый 13.07.2012, 15:07   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Это перепутано местами.
только это и ошибка, в остальном все верно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.07.2012, 15:24   #18
pepesina
Пользователь
 
Регистрация: 12.07.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
только это и ошибка, в остальном все верно.

Человек написал, дописал все верно и все сразу работает...и без всяких там ошибок..и всяких но...что сказать профи!!!
pepesina вне форума Ответить с цитированием
Старый 13.07.2012, 15:30   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я пришел с работы, и просто написал код по памяти, не проверяя.
если бы вы читали хоть немного параметры функций, то могли бы и исправить сами.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.07.2012, 15:56   #20
pepesina
Пользователь
 
Регистрация: 12.07.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
я пришел с работы, и просто написал код по памяти, не проверяя.
если бы вы читали хоть немного параметры функций, то могли бы и исправить сами.
не мути воду....так бы и сказал,что по памяти написал..тема закрыта можна удалять!
pepesina вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как Checkbox чужой программы в тру? maks5 Общие вопросы Delphi 5 09.01.2012 21:53
Как узнать размер чужой программы? maks5 Общие вопросы Delphi 4 05.01.2012 23:35
Запуск чужой программы как сервиса Человек_Борща Общие вопросы Delphi 9 08.02.2011 13:44
Как можно взять кусок чужой страницы и засунуть его на свою? wis239 PHP 7 12.02.2009 18:11
как получить чужой комп в свои руки zetrix Безопасность, Шифрование 7 13.11.2008 16:32