Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
3-5417
Anton
2003-02-12 14:18
2003.03.03
Как можно вызвать оракловую функцию из delphi


3-5397
hooch
2003-02-12 12:07
2003.03.03
delphi + ms sql 200


3-5411
T{}r(l-l
2003-02-11 16:15
2003.03.03
Grid с Editom с поиском(типа Locate)


6-5691
Vladimir
2003-01-12 10:28
2003.03.03
TWebBrowser


14-5860
KA_
2003-02-12 11:12
2003.03.03
Оператор?..




   Наверх