Форум: "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