![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Как через WinAPI получить текстовые данные? Сообщение должно обрабатываться в программе и результат присваиваться сообщению. Типа так:
Код:
//код в основной проге
procedure TКЛАСС_ФОРМЫ.WMMessages(var Msg: TMessage);
begin
Case Msg.WParam Of
STRING1QUERY: Msg.Result := НЕКАЯ_ФУНКЦИЯ_КОТОРАЯ_КОНВЕРТИРУЕТ_СТРОКУ_В_Integer(String1);
STRINGTEST: Msg.Result := ФУНКЦИЯ('Test');
End;
end;
//и код в управляющей проге
function TPlayerControl.GetString(Msg: Cardinal; wParam: integer; lParam:
integer; var value: PChar): boolean;
var
Handle: HWND;
begin
value := '';
Handle := FindWindow(PChar('TКЛАСС_ФОРМЫ'), nil);
if Handle <> 0 then
begin
value := ФУНКЦИЯ_КОТОРАЯ_КОНВЕРТИРУЕТ_РЕЗУЛЬТАТ_В_СТРОКУ(SendMessage(Handle, Msg, wParam, lParam));
Result := Value<>'';
end
else
Result := false;
end; |
|
#2
|
||||
|
||||
|
Может здесь что-нить полезное будет?
http://www.script-coding.info/AutoHo...ndMessage.html |
|
#3
|
||||
|
||||
|
Цитата:
А для кого указатели придумали???? Код:
var p : PChar; i : longint; begin p := GetMemory(200); p := 'Hello!'; i := integer(p); ShowMessage(PChar(i)); end; |
|
#4
|
||||
|
||||
|
чет не работают указатели...
AccessViolation... может я что-то не так делаю?Код:
//модуль
function TPlayerControl.GetTrackTitle: string;
var
P: PChar;
Handle: HWND;
Integ : integer;
begin
Result := '';
P := getmemory(1024);
Handle := FindWindow(PChar('TPLForm'), nil);
if Handle <> 0 then
begin
integ := SendMessage(Handle, WM_COMMAND, 27211, 0);
P := PChar(integ);
Result := P;
end;
end;
//сама программа
procedure TPLForm.WMMessages(var Msg: TMessage); //message WM_COMMAND
var i : integer;
begin
Case Msg.WParam Of
...
27211: begin
i := integer(GetTag(FFileName));
Msg.Result := i;
end;
End;
end; |
|
#5
|
||||
|
||||
|
Может я ошибаюсь
Но PChar - это указатель на адрес памяти где хранятся текстовые данные и както странно передавать его другой программе. ![]() Есть много способов передачи данных от одной программы к другой. В данном случае я бы использовал технологию DDE - несколько строк кода и обменивайся текстовыми данными сколько хочешь. http://www.delphisources.ru/pages/fa.../dde_info.html (правда там немного запутанно но больше электронного описания пока ненашел) |