Форум: "WinAPI";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизСчитать текст с блокнота Найти похожие ветки
← →
nirvan (2007-06-05 16:31) [0]У меня возникла проблема, как можно считать текст с текстового поля блокнота и вывести этот текст, которой находится в текстовой поле в listbox
Заранее благодарен!!
← →
homm © (2007-06-05 16:35) [1]Для начала тебе нужно найти окно Блокнота.
Конечно если меется ввиду программа Блокнот, а не TMemo, имеюшая похожую иконку в палитре компонентов.
← →
nirvan (2007-06-05 17:49) [2]я нахожу сам блокнот с помощью
findWindow("Notepad", "нзваиние документа ");
потом я делаю следующее
w:=GetWindow(w,GW_CHILD);
GetClassName(w, buff, SizeOf(buff));
getwindowtext(w, buff, sizeof(buff));
что мне не хватает что текст окзался в buff?
← →
tesseract © (2007-06-05 18:04) [3]
> что мне не хватает что текст окзался в buff?
GetMem(buf) ?
← →
nirvan (2007-06-05 18:22) [4]нет это не под ходит потому что buff: array [0..127] of char
я буду очень признателен если кто-нибудь даст уже готовый текст проги
← →
begin...end © (2007-06-05 20:19) [5]GetWindowText здесь не подойдёт. Используйте сообщение WM_GETTEXT.
← →
nirvan (2007-06-05 21:51) [6]здесь возникает еще один вопрос,а как правильно WM_GETTEXT описать в программе(т.е. какие параметры и как их указать и на что эти параметры должны указывать)
← →
homm © (2007-06-05 22:09) [7]f1 ?
← →
begin...end © (2007-06-05 22:10) [8]var
Buffer: PChar;
hEdit, Len: Cardinal;
begin
hEdit := FindWindowEx(FindWindow("Notepad", "Безымянный - Блокнот"), 0, "EDIT", nil);
if hEdit <> 0 then
begin
Len := SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0) + 1;
GetMem(Buffer, Len);
try
if SendMessage(hEdit, WM_GETTEXT, Len, Integer(Buffer)) <> 0 then
MyMemo.Text := Buffer
finally
FreeMem(Buffer)
end
end
end
← →
homm © (2007-06-05 22:12) [9]> [8] begin...end ©
Зря ты так, что он тебе сделал :)
← →
nirvan (2007-06-05 22:38) [10]begin...end большое человеческое спасибо, благодарен тебе за помощь
← →
nirvan (2007-06-05 23:53) [11]почему begin...end ты использовал не GetWindowText а использовал SendMessage(hEdit, WM_GETTEXT, Len, Integer(Buffer)) ?
почему GetWindowText не подходит?
← →
clickmaker © (2007-06-06 09:31) [12]
> [11] nirvan (05.06.07 23:53)
потому что хелп надо читать иногда
However, GetWindowText cannot retrieve the text of a control in another application.
...
If the target window is owned by another process and has a caption, GetWindowText retrieves the window caption text. If the window does not have a caption, the return value is a null string. This behavior is by design. It allows applications to call GetWindowText without becoming unresponsive if the process that owns the target window is not responding. However, if the target window is not responding and it belongs to the calling application, GetWindowText will cause the calling application to become unresponsive.
To retrieve the text of a control in another process, send a WM_GETTEXT message directly instead of calling GetWindowText.
(с) MSDN
← →
nirvan (2007-06-06 14:07) [13]все спасибо за помощь
Тема закрыта
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c