Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизДостать данные Найти похожие ветки
← →
borg (2002-10-12 18:28) [0]Я вытащил все Handel и с помощью SendMessage(1620,WM_GETTEXT,0,0); пытаюсь этот текст просмотреть, но :-(((
SendMessage возвращает Integer, а мне надо бы узнать написанный текст. Зарание большое спасибо.
← →
Anatoly P (2002-10-12 18:33) [1]Не совсем понял, но может быть GetWindowText()
← →
ZrenBy (2002-10-12 18:33) [2]WM_GETTEXT
wParam = (WPARAM) cchTextMax; // number of characters to copy
lParam = (LPARAM) lpszText; // address of buffer for text
+
WM_GETTEXTLENGTH
wParam = 0; // not used; must be zero
lParam = 0; // not used; must be zero
← →
borg (2002-10-12 18:41) [3]Извиняюсь за неполный вопрос. Мне надо скопировать текст из DBEdit который находится в другой программе(она запущена) в мою в Edit1
{Ищем хэндл DBEdit}
handle1:=FindWindowEx(2196,0,nil,pchar(wind_name));
if button_handle=0 then
begin
result:=false;
exit;
end;
SendMessage(Handle1,WM_GETTEXT,0,0);
← →
Anatoly P (2002-10-12 18:46) [4]buff : array[0..127] of char;
GetWindowText(Handle1,buff,sizeof(buff));
Попробуй, если не то , то не знаю
← →
ZrenBy (2002-10-12 18:47) [5]var sStr:String[255];
SendMessage(Handle1,WM_GETTEXT,254,PChar(@sStr[0]));
или @sStr[1] - не помню уже, но вроде 0
← →
borg (2002-10-12 19:20) [6]>>Anatoly P
Получилось:-), но последний вопрос, массив размером [127], а
в Edite всего 4 символа(но в другой момент может быть хоть сколько) и все не дастоюшие символы заполяются от фонаря, как этого избежать.
← →
Shrek (2002-10-12 20:08) [7]var arr: array [1..$FF] of pChar;
Text: string;
SendMessage(handle, WM_GETTEXT, SizeOf(Arr), Integer(@Arr));
Text := @Arr;
← →
Anatoly P (2002-10-12 22:30) [8]Это я для примера - а вообще используй динамические массивы
buff : array of char;
а далее - setlength(buff,NewLength);
NewLength - любое целое число
← →
Юрий Зотов (2002-10-12 23:57) [9]Не проверял, но должно работать.
function GetWndText(Wnd: HWND; MaxLength: integer): string;
var
Buff: array of char;
begin
SetLength(Buff, MaxLength + 1);
try
SetString(Result, Buff,
SendMessage(Wnd, WM_GETTEXT, SizeOf(Buff), @Buff[0]))
finally
Buff := nil
end
end;
И вопрос - почему Вы используете числовые константы? Разве хэндлы окон программы не меняются при каждом ее новом запуске?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c