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

Вниз

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

 
Ярослав   (2005-04-21 12:58) [0]

Подскажите можно ли получить текст контрола из другого приложения, например надпись из Edit-а, а вообще мне надо текст из ячейки DBGrid-а, это возможно?


 
ANB ©   (2005-04-21 13:33) [1]

Да. Из DBGrid - проблематично и не всегда (если только распознавание не юзать).


 
Ярослав   (2005-04-21 14:13) [2]

Ладно а как мне например эмулировать нажание кливиши или сочитания в другом приложении?


 
ANB ©   (2005-04-21 14:47) [3]

WM_KEYDOWN, WM_KEYCHAR, WM_KEYUP. Полазь по форуму, я выкладывал исходник, только там есть другая проблема - с русскими буквами. Ты чего пишешь ?


 
Ярослав   (2005-04-21 14:52) [4]

Да мне русские буквы не нужны. Мне бы установить фокус на контрол, выделить текс и нажать Ctrl+C.
Есть база данных в неизвестном формате (*.WM) и приложение с ней работающие, а мне нужны эти данные. Вот я и хочу эти данные как нибудь выдрать от туда. Вот решил уже так как если бы это я сам жал на кнопки и по одной капировал бы их в буфер обмена, только я хочу чтобы это программа за меня сделала, а то я за неделю не управлюсь.


 
ANB ©   (2005-04-21 15:07) [5]

А руками получается ? (Только клавой ?) Для копирования в буфер можно не Ctrl+C, есть функция специальная. Я поищу.


 
ANB ©   (2005-04-21 15:24) [6]

Вот так работает достать текст из контрола :

var sText : String;
. . .
Size := SendMessage(hControl, EM_LINELENGTH, 0, 0);
SetLength(sText, Size);
TextLen := @sText[1];
TextLen^ := Size;
Size := SendMessage(hControl, EM_GETLINE, 0, LongWord(PChar(sText)));
SetLength(sText, Size);


 
Ярослав   (2005-04-22 05:53) [7]

А что такое:
Size
TextLen
Ну Size можно предположить Integer, а TextLen как описать


 
ANB ©   (2005-04-22 09:14) [8]


var hControl : Integer;
   Size : Integer;
   sText : String;
   TextLen : ^Word;
begin
Size := SendMessage(hControl, EM_LINELENGTH, 0, 0);
SetLength(sText, Size);
TextLen := @sText[1];
TextLen^ := LoWord(Size);
Size := SendMessage(hControl, EM_GETLINE, 0, LongWord(PChar(sText)));
SetLength(sText, Size);
end;



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.026 c
14-1116913099
cyborg
2005-05-24 09:38
2005.06.14
25 фактов о Звездных войнах


4-1114194303
Merl
2005-04-22 22:25
2005.06.14
SetWindowRgn


9-1106580715
Trof
2005-01-24 18:31
2005.06.14
Ландшафт в 3dsmax.


14-1117026867
Korvet
2005-05-25 17:14
2005.06.14
Открытие окон в инете.


14-1116841043
Polevi
2005-05-23 13:37
2005.06.14
Нас облучают !