Главная страница
    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.45 MB
Время: 0.009 c
1-5616
Zn
2003-02-20 09:57
2003.03.03
Отображение текста в StatusBar - нет на других машинах.


1-5483
ych_boriss
2003-02-20 15:25
2003.03.03
TMemoryStream. Адресное пространство TMemoryStream.Memory


14-5710
alex_bredin
2003-02-12 10:41
2003.03.03
InstallShield Express for Delphi 6


14-5713
IronHawk
2003-01-23 17:04
2003.03.03
Третья официальная ВСТРЕЧА Мастаков в КИЕВЕ!!!


6-5698
Mischka
2003-01-14 10:41
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский