Слил свежий лазарь. Попробовал в нем кусок старого кода, успешно работавшего на FPC 2.6.0. При сборке в лазаре вместо русских букв стали вопросы, а в FPC все работало нормально (вывод шел в кодировке 1251)...
Кусок кода:
- Код: Выделить всё
Function WinList (Wd : LongWord; Param : LongInt) : LongBool; StdCall;
Function GetWindowName(Wd : LongWord) : ShortString;
Var
Nm : Array [0..255] of Char;
St : ShortString;
i : Word;
begin
GetWindowText(Wd,Nm,255); // Получаем имя окна
i := 0; // Переводим имя в строку
St := '';
While (Nm[i] <> #0) and (i <> 256) do
begin
St := St + Nm[i];
inc(i)
end;
GetWindowName := St // Возвращаем строку с именем окна в результат
end;
begin
if IsWindowVisible(WD) Then // Это видимое окно...
if IsWindow(WD) Then // Это окно???
Form1.ListBox1.Items.Add(IntToStr(WD) + #32 + GetWindowName(Wd));
WinList := True;
end;