Главная страница
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.013 c
1-5647
Sniffer
2003-02-20 15:18
2003.03.03
I/O error 87


14-5752
Profesor
2003-02-16 11:32
2003.03.03
Клава


14-5868
down
2003-02-14 13:05
2003.03.03
исходники filemon


14-5747
jen_bond
2003-02-16 10:20
2003.03.03
Автозапуск для cd-rom.


14-5777
eLVik
2003-02-12 12:49
2003.03.03
И снова ADO