Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Получение текста другого окна   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2002.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-45808
Alex4444444444
2002-11-04 11:05
2002.11.14
Как бороться с Clipboard


1-45883
AL2002
2002-11-05 17:43
2002.11.14
Как узнать количество поторяющихся строк в ListBox?


1-45815
Юрий Зотов
2002-11-04 14:26
2002.11.14
TCustomModule.CreateDesignedForm (модуль DsgnIntf.pas)


14-46134
p_albert77@mail.ru
2002-10-27 01:19
2002.11.14
программа печатает сама себя???


3-45785
Геннадий
2002-10-26 14:29
2002.11.14
Как сохранить DBGrid в (текстовый) файл?