Текущий архив: 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);
......end..................
var s:string;
begin
while EnumWindows(@EnumWindowsProc,0)=true do
begin
s:=str;
listbox4.Add(s);
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.45 MB
Время: 0.008 c