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

Вниз

Как получить список заголовков всех окон   Найти похожие ветки 

 
Igit ©   (2003-01-15 10:54) [0]

Я это пытался сделать так:
.......................
var str:pchar;........................
function EnumWindowsProc(h: hwnd): BOOL; stdcall;
begin
GetWindowText(h, str,80);
end;
............................
procedure TForm1.Button15Click(Sender: PObj);
var s:string;
begin
while EnumWindows(@EnumWindowsProc,0)=true do
begin
s:=str;
listbox4.Add(s);
end;
end;
......end..................
Почему-то у меня этот цикл выполняется бесконечно, занося в listbox4 одинакоыую строку "Programan Manager" (или что-то вроде...) Где я ошибся?


 
F1 ©   (2003-01-15 10:58) [1]

Делай GetNextWindow!


 
ZrenBy ©   (2003-01-15 11:05) [2]

Просто EnumWindows(@U_ECWProc,LPARAM(StringList));
без while

и

function U_ECWProc(hW:HWND;lP:LPARAM):Boolean;stdcall;
var S:String;
begin
SetLength(S,SendMessage(hW,WM_GETTEXTLENGTH,0,0)+1);
SetLength(S,SendMessage(hW,WM_GETTEXT,Length(S),LPARAM(S)));
TStringList(lP).Add(S);
Result := True;
end;


 
Игорь Шевченко ©   (2003-01-15 11:29) [3]

В кладовке, в разделе "Готовые программы" лежит программа EnumFunctions - там есть пример использования этой функции.


 
Igit ©   (2003-01-15 11:30) [4]

ZrenBy © (15.01.03 11:05)
Тоже самое... EnumeWindows передает функции все время одно окно...

F1 © (15.01.03 10:58)
Я переделал, так:

var window:hwnd;


function EnumWindowsProc(h: hwnd): BOOL; stdcall;
begin
window:=h;
end;


procedure TForm1.Button15Click(Sender: PObj);
var s:string;
str:pchar;
begin
EnumWindows(@EnumWindowsProc,0);
window:=GetNextWindow(window, gw_HWndNext);
window:=GetNextWindow(window, gw_HWndPrev);
while window<>0 do
begin
window:=GetNextWindow(window, gw_HWndNext);
GetWindowText(window, str,80);
s:=str;
listbox4.Add(s);
end;

end;



но после вызова GetNextWindow window становится равен 0


 
Igit ©   (2003-01-15 11:34) [5]

Извиняюсь ;) По ходу я просто не так понял назначение функции EnumWindowsProc



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
14-5718
Дмитрий К.К.
2003-02-14 06:23
2003.03.03
Именинники 14 февраля


9-5366
Gandalf
2002-09-29 18:15
2003.03.03
Лазерный Меч


14-5818
FROM_X
2003-02-13 13:44
2003.03.03
DirectSS Кто с ним работал?


1-5645
Volly
2003-02-19 17:33
2003.03.03
Экспорт из RTF в HTML


9-5372
Ricks
2002-09-22 12:37
2003.03.03
Clipping, или как там