Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не работает GetWindowText и WM_GETTEXT 
V
    Опции темы
туп
Дата 19.2.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



пробовал GetWindowText и SendMessage (W) + WM_GETTEXT не работет.. Объект Static, Handle точный.. (отпрвка/приём личного сообщения в мирке)
как изъять текст?
PM MAIL ICQ   Вверх
Rennigth
Дата 19.2.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Ошибка в 17 строке. Код бы привел который не работает. Как Handle узнаешь, точно ли тому окну шлешь. Функция НЕМОЖЕТ не работать, ее можно только неправильно использовать.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
туп
Дата 19.2.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



smile Handle правильный написал же..
код.. смысл его приводить если я сказал что пользуюсь SendMessage(WM_GETETXT) или GetWindowText правильно (сделал вывод на том оснвании что всё равботет с Edit'ом например)
А не работает - я подразумиевал не заполняет массив данных который я передаю в SendMessage Тоесть возвращает пустую строку
PM MAIL ICQ   Вверх
туп
Дата 20.2.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



:| я же говорю:
Код

 var
 s:string;
 len:integer;
 begin
  SetLength(s,500);
 len:=SendMessage(Hwnd,WM_GETTEXT,500,Integer(@s[1]));
 SetLength(s,len);
 end;
***
var
b:array [0..499] of char;
begin
GetWindowText(Hwnd,b,500);
SрowMessage(b);
end;

можно через array [] of char в первом
что не понятного?
PM MAIL ICQ   Вверх
Rennigth
Дата 20.2.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Цитата(Rennigth @  19.2.2007,  18:32 Найти цитируемый пост)
Как Handle узнаешь

???

У тебя Handle кривой или не того окна.



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
туп
Дата 20.2.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



повторяю: Handle правильный, я вопрос задал на счёт функции, а не того что у меня не правильно возвращается Handle
PM MAIL ICQ   Вверх
Rennigth
Дата 20.2.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Код

var
  lpBuffer: PChar;
  lWndHandle: DWord;
begin
  lWndHandle := $00020A6C;

  lpBuffer := GetMemory(1024);
  try
    SendMessage(lWndHandle, WM_GETTEXT, 1024, Integer(lpBuffer));
    ShowMessage(lpBuffer);
  finally
    FreeMemory(lpBuffer);
  end;
end;

Только что на миранде проверял, все работает.

Это сообщение отредактировал(а) Rennigth - 20.2.2007, 15:48


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
туп
Дата 20.2.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



блин smile ну ради интереса переделал в точности как у тебя, всё равно.. handle ещё раз перепроверил (WinSpy'ом проверял) - совпадает.. + если я беру текст не со Static'а (главное окно в котором видно всё что написанно), а с Edit'а (окно в котором пишется текст для отправки) то всё работает! smile 
вот прикрепил скрин Там с Edit'а текст нормально берётся, а со Static  не хочет..
Версия мирки: mIRC 6.17

Это сообщение отредактировал(а) туп - 20.2.2007, 18:25

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  1.rar 11,71 Kb
PM MAIL ICQ   Вверх
Yanis
Дата 20.2.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111



Ты с помощью чего текст из TEdit получаешь?

P. S. 
Цитата
However, GetWindowText cannot retrieve the text of a control in another application.



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
туп
Дата 20.2.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



SENDMESSAGE + WM_GETTEXT
PM MAIL ICQ   Вверх
Yanis
Дата 20.2.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111



Проверил этот код на Static-е в окошке "О программе" в блокноте. Всё работает smile 
Код
var
  S: string;
  len: Integer;
begin
  len := Sendmessage($001906A0, WM_GETTEXTLENGTH, 0, 0);
  SetLength(S, len);
  SendMessage($001906A0, WM_GETTEXT, len+1, lparam(@S[1]));
  ShowMessage(S);
end;



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
туп
Дата 20.2.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



 smile  ну в чём я ещё мог ошибиться? проверьте, кому не сложно, именно на мирке, именно там где я показал в скриншоте.. Возможно что мирка перехватывает эту API специально обнуляя ? ну что то типа защиты? Тогда почему в сниффере все пакеты без шифрования идёт :S
PM MAIL ICQ   Вверх
dumb
Дата 20.2.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



туп, ты уверен, что ты пошел правильным путем? опиши, что ты хочешь сделать вообще.

сниффер + запись в edit - это что-то, если учесть, что в мирке мощная скриптовая система.
PM MAIL   Вверх
туп
Дата 20.2.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.2.2007
Где: Минск

Репутация: нет
Всего: нет



Цитата

сниффер + запись в edit - это что-то

не понял
Цитата

 если учесть, что в мирке мощная скриптовая система.

это ты про то что можно с помошью мирки получить текст принятого сообщения? Я об этом думал, но решил что проще будет изъять текст напрямую (так как плохо знаком со скриптами, миркой), видимо был не прав
PM MAIL ICQ   Вверх
dumb
Дата 21.2.2007, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Цитата(туп @  20.2.2007,  20:37 Найти цитируемый пост)
решил что проще будет изъять текст напрямую (так как плохо знаком со скриптами, миркой), видимо был не прав

в данном случае, "напрямую" - это как раз через скрипты.
не поленись, нажми Alt-R, F1 и почитай немного(там довольно много простейших примеров), поэксперементируй(во избежание нарушения душевного спокойствия пользователей лучше это делать на специально созданном канале smile).
если чего-то не найдешь в справке, то всегда поможет гугл("mirc скрипты") или специализирующиеся на mirc-скриптинге каналы(названий не помню).
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.