Форум: "WinAPI";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
ВнизПолучение текста другого окна Найти похожие ветки
← →
DDi (2002-09-27 02:11) [0]Приветствую!
Собственно меня интересует такой вопрос: "Ну японский бог, ну почему же не работает этот код!!!" :) -->
procedure TForm1.Button1Click(Sender: TObject);
var
h: THandle;
Buf: PChar;
begin
h := FindWindowEx(FindWindow("Notepad",nil),0,"Edit",nil);
GetWindowText(h,Buf,GetWindowTextLength(h));
Label1.Caption := "Text = " + Buf;
end;
Подскажите рабочий способ.
Зараннее спасибо всем ответившим!
← →
Song (2002-09-27 08:36) [1]Пушкин А.С. знает точно!
← →
LordOfSilence (2002-09-27 09:16) [2]А где именно не работает?
На какой строке кода сбоит?
Вдогонку - сколько байт у Вас выделено под переменную Buf?
← →
Guerrillero (2002-09-27 10:45) [3]такой код у меня работает:
procedure TForm1.Button1Click(Sender: TObject);
var
h: THandle;
Buf: PChar;
I : Integer;
begin
h := FindWindowEx(FindWindow("Notepad",nil),0,"Edit",nil);
I := SendMessage(h,WM_GETTEXTLENGTH,0,0);
GetMem(Buf,I);
SendMessage(h,WM_GETTEXT,I+1,Integer(Buf));
Label1.Caption := "Text = " + String(Buf);
FreeMem(Buf);
end;
← →
Almaz (2002-09-28 00:54) [4]
> Song © (27.09.02 08:36)
> Пушкин А.С. знает точно!
Точно не знает - он умер до рождения Delphi.
> DDi (27.09.02 02:11)
> Приветствую!
> Собственно меня интересует такой вопрос: "Ну японский бог,
> ну почему же не работает этот код!!!" :) -->
Потому, что функция GetWindowText работает только в пределах одного процесса. Т.е. с ее помощью нельзя получить тект из окна другого приложения.
> Подскажите рабочий способ
См. Guerrillero © (27.09.02 10:45)
Удачи.
← →
grifon (2002-10-03 17:16) [5]
> procedure TForm1.Button1Click(Sender: TObject);
> var
> h: THandle;
> Buf: PChar;
> I : Integer;
> begin
> h := FindWindowEx(FindWindow("Notepad",nil),0,"Edit",nil);
> I := SendMessage(h,WM_GETTEXTLENGTH,0,0);
> GetMem(Buf,I);
> SendMessage(h,WM_GETTEXT,I+1,Integer(Buf));
> Label1.Caption := "Text = " + String(Buf);
> FreeMem(Buf);
> end;
А почему при изменении 7-ой строчки на
I := SendMessage(GetFocus,WM_GETTEXTLENGTH,0,0);
код неработает? По идее должен возвращаться текст активного Edit?
← →
Song (2002-10-03 18:14) [6]2Almaz © (28.09.02 00:54)
Пообщайтесь, с Анатолием Подгорецким. Он расскажет Вам что значит сия идиома. Кстати очень удивлён, что не знаете.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c