Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.048 c
3-5464
polecat79
2003-02-13 18:38
2003.03.03
Проблема с использованием


14-5863
Nox
2003-02-14 14:17
2003.03.03
Proxy


1-5560
REA
2003-02-21 15:51
2003.03.03
Профайлинг


14-5758
tred
2003-02-15 20:12
2003.03.03
string


3-5432
Germes
2003-01-30 10:45
2003.03.03
Вопросик насчет установки готовой программы для работой с базами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский