Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.04.2013, 13:17
kudesnik kudesnik вне форума
Прохожий
 
Регистрация: 06.02.2012
Сообщения: 21
Репутация: 10
По умолчанию вместо читаемого текста - иероглифы

в dll-ке есть функция, которая передает перехваченный текст (readfile) в tmemo, после передачи выводятся - иероглифы.
как это исправляется?
думаю проблема в этом:
Код:
NewBuffer := 'прочитано сообщение - "'+pchar(@Buffer)+'"'; 
или в этом:
Код:
b:=  trim(s)+#13#10+(newBuffer);

сама функция:
Код:
function NewReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD;  var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
var
ll,l: integer;
s : string;
b:string;
UnPro : HWND;
PassText: HWND;
NewBuffer: string;

begin
// текст передаваемого сообщения
NewBuffer := 'прочитано сообщение - "'+pchar(@Buffer)+'"'; 

// здесь передается сообщение в memo (в чужую программу)
UnPro:= FindWindow(nil, 'xxx');
PassText := FindWindowEx(UnPro, 0, 'TMemo', nil);
ll:=SendMessage(PassText, WM_GETTEXTLENGTH, 0, 0) + 1;
SetLength( s, ll );
l := SendMessage( PassText, WM_GETTEXT, ll, lparam( @s[ 1 ] ) );
Copy( s, 1, l );
b:=  trim(s)+#13#10+(newBuffer);
SendMessage(PassText, WM_SETTEXT, 0,lparam(b));

result := TrueReadFile(hFile,Buffer,nNumberOfBytesToRead,lpNumberOfBytesRead,lpOverlapped);
end;
  #2  
Старый 11.04.2013, 13:35
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

либо юникод, либо кодировки.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
  #3  
Старый 11.04.2013, 13:57
kudesnik kudesnik вне форума
Прохожий
 
Регистрация: 06.02.2012
Сообщения: 21
Репутация: 10
По умолчанию

каким образом нужно менять чтоб код заработал? никак не могу доделать эту функцию
  #4  
Старый 11.04.2013, 14:01
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ты передаешь указатель на строчку, а дальше как вычитывается? Через ReadProcessmemory?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
  #5  
Старый 11.04.2013, 14:45
kudesnik kudesnik вне форума
Прохожий
 
Регистрация: 06.02.2012
Сообщения: 21
Репутация: 10
По умолчанию

сделал так, результата нет.
Код:
var
  qwe:pointer;
begin
qwe:=  @Buffer;
NewBuffer := 'прочитано сообщение - "'+pchar(qwe^)+'"';
...
  #6  
Старый 11.04.2013, 14:50
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Я не понимаю, что ты делаешь. Еще и код толком не отформатирован, читать невозможно.

Тебе из одной программы данные надо передать в другую?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Закрытая тема


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter