function enumproc(wnd:hwnd; lparam:lparam):BOOL; stdcall; var s,ss:array [1..30] of char; s1:string [30]; begin GetClassName(wnd,@s,20); GetWindowText(wnd,@ss,20); form3.Memo1.Lines.Add(ss); Result:=true; end;
procedure TForm3.Button1Click(Sender: TObject); var wnd,wnd1,wnd2:hwnd; s: array [1..30] of char; begin Memo1.Clear; EnumWindows(@enumproc,0) end;
Выводит очень большой список, а мне нужно только список тех окон, которые открыты. Мне надо найти окно по части имени, вот и решил перебрать все окна
Помню, что это как поинтер и с ним компилятор успакаивается Это было в примере, если неправильный прототип функции был (вроде enum...). А про массив и PChar даже не знал, как увидел такой пример, так и делал по-нему. Про "чудо-параметр". тип LParam вроде тот же Integer. Но через него передается целый массив строк Это указатель что-ли? по описанию
Цитата
Устанавливает 32-разрядное, определяемое программой значение, которое будет передано в функцию повторного вызова.