Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Вниз

Надо взять строку из Едит бокса и Лэйбла   Найти похожие ветки 

 
sadreg   (2002-09-21 15:24) [0]

Дарова Мастера, я снова мучаю вас своими вопросами :)
Мне нужно взять строку из Edit`а и Static`а.
При использовании GetWindowText (я думал ак получится :( Лэйбл мне возвращает "Яс", а едит боке вапче ниче :(
Заранее пасиба.


 
Diamond Cat   (2002-09-22 00:45) [1]

sendmessage(...,wm_gettext,...,...)


 
Gerda   (2002-09-23 09:25) [2]

К сожалению не получается :( потому и спрашиваю.... (да вставить строку получается sendmessage(...,wm_settext,...,...))
Вот что мне надо сделать: найти все окна М$ ИЭксплорера и скопировать его адресную строку..... (мож это из-за того что там Едит находится в СомбоБоксе ?)
Вот такой вот фрагмент я накрапал....

function EnumChildWindowsProc(hChildWindow : hWnd; lParam : LongInt) : Bool // Функция в которую подаются найденые дочерние окна
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var buf2,buf:array [0..100] of char;

begin
GetClassName(hChildWindow,buf,100);
if buf="Edit" then begin
GetWindowText(hChildWindow,buf2,100);
// SendMessage(hChildWindow,WM_GETTEXT,0,integer(@buf2));
Form1.ListBox1.Items.Add(buf2); // выводит надпись Програм Мэнэджэр, а если тута написать buf - то Edit :(
Exit;
end;
end;
//-----------------------------------------------------------
function EnumWindowsProc(hWindow : hWnd; lParam : LongInt) : Bool // Функция в которую подаются найденые окна
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var buf:array [0..100] of char;
begin
Form1.ListBox1.Clear;
GetWindowText(hWindow,buf,100);
if StrPos(buf,PChar("Microsoft Internet Explorer"))<>nil
then begin
Inc(bColwWH);
hWindHandle[bColwWH]:=hWindow;
end;
Result := True;
end;
//MYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMYMY
procedure TForm1.Button1Click(Sender: TObject);
var buf:array [0..100] of char;
i:byte;
begin
EnumWindows(@EnumWindowsProc,lParam(0));

for i:=1 to bColwWH do begin
EnumChildWindows(hWindHandle[i],@EnumChildWindowsProc,0);
end;

end;

Пасиба...


 
Gerda   (2002-09-23 09:29) [3]

Да и еще с Лэйблом (Static) вапче лажа выходит :(, он мне постоянно "яс" выводит в ответ на sendmessage(...,wm_gettext,...,...), и GetWindowText(...);


 
Marcus   (2002-09-23 12:48) [4]

В Win32 SDK сказано по поводу GetWindowText: "This function cannot retrieve the text of an edit control in another application"


 
Gerda   (2002-09-23 15:14) [5]

Marcus, да это фсе хорошо но как же мне быть ?)


 
Codec   (2002-09-23 17:01) [6]

по поводу "This function cannot retrieve the text of an edit control in another application" могу сказать, что если знать позицию, где этот edit control будет находиться, то можно и взять из него текст и вставить туда ЕГО :-)). Показываю:
var
h: hWnd;
begin
h := WindowFromPoint(); //координаты edit control"а
SendMessage(h,GetWindowText(парам. sendmessage см. в SDK));
/работающий код приведу дополнительно, если заинтересовало/
end;



 
Gerda   (2002-09-23 19:15) [7]

Codec, вот так как раз не получается (записать туда чета так фсе пучком, а извлечь) ... если не влом то сливай (код) сюда sadreg@mail.ru, с лэйблами разобрался: GetWindowText(GetDlgItem(hFindWindow,ID),buf,50); ID - это ид лэйбла в ресурсах...


 
Codec   (2002-09-23 22:26) [8]

Вот, пожалуйста!

var
tmp: hWnd;
txt: array [1..10] of char; //количество символов в edit control"a
const
crdn: TPoint = (x:0;y:0); //координаты edit control"a
begin
tmp := WindowFromPoint(crdn);
SendMessage(tmp,WM_GETTEXT,10,integer(@txt));
ShowMessage(txt); //выведет тебе текст из контрола - полюбоваться :-))
end;


Желаю дальнейших успехов!


 
Diamond Cat   (2002-09-24 02:32) [9]

довольно корявый пример но тем не менее рабочий, могу добавить что для начала лучше послать WM_GETTEXTLENGTH , чтобы узнать кол-во символов содержащихся в контроле , или просто установить (исходя из вышеизложенного примера) txt: array[0..max_path] of char;

и отправлять SendMessage(tmp,WM_GETTEXT,syzeof(txt),integer(@txt)); но может вернуть кроме полезной инфы еще и кучу бреда


 
Adept   (2002-09-24 11:46) [10]

Все віше написанное под ХР и её паролны едиты не пашет :(
Я прогу ннаписал Windows Controller она из чего угодно текст вытягивает (вобщем менеджер окно) кто хочет качайте там много чего по работе с окнами и процессами есть

adept7.kiev.ua


 
Gerda   (2002-09-24 16:28) [11]

Фсе БАЛЬШОЕ пасиба, фсе работает (мож я в тот день пива многа выпил, и не так чтота делал :), но вот терь надо вспоминать для чего это надо было мне :) шутка помню :)
Еще раз пасиба, дальше отвечать на вопрос нету смыса :)



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

Форум: "WinAPI";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-21481
Leny
2002-10-28 14:57
2002.11.07
Close=Minimaze


3-21418
lesalesa
2002-10-18 15:46
2002.11.07
Возможна ли фильтрация по вычислимому полю для TTable?


14-21737
Igorek
2002-10-16 19:50
2002.11.07
Как перекинуть текст из разных HTML файлов в один?


4-21883
ikos
2002-09-26 09:14
2002.11.07
Активация MDI окна


1-21672
maxim2
2002-10-28 08:19
2002.11.07
Как закрасить опр. ячейку в StringGride или DrawGride опр. цветом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский