Форум: "WinAPI";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];
ВнизПочему в Win XP не работает EnumWindows Найти похожие ветки
← →
amo (2004-01-04 15:45) [0]Нужно загнать в ComboBox все открытые окна делаю так:
procedure FindWind;
begin
Form1.ComboBox1.Items.Clear;
EnumWindows (@EnumProc, 0);
end;
function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall;
Var
Nm:Array[0..255] of Char;
Begin
If IsWindowVisible(Wd) Then
Begin
GetWindowText(Wd,Nm,255);
If String(Nm)<>"" Then
Form1.ComboBox1.Items.Add(String(Nm));
EnumProc := TRUE;
End;
end;
В Win 98 работает а в XP нет, помогите плиззз
← →
Автоответчик (2004-01-04 17:05) [1]If IsWindowVisible(Wd) Then
Begin
GetWindowText(Wd,Nm,255);
If String(Nm)<>"" Then
Form1.ComboBox1.Items.Add(String(Nm));
End;
EnumProc := TRUE;
У тебя разрешается продолжить поиск окон только в том, случае, если первое найденное окно - видимое, иначе - результат возвращаемой функции будет неопределенным (с вероятностью 1/2 - False)
← →
Автоответчик (2004-01-04 17:08) [2]Извини за сумбурное изложение. Я имею в виду, что нужно исправить как я указал: то есть убрать EnumProc := TRUE из If"а, и перенести его в основное тело процедуры, которое выполняется всегда
← →
amo (2004-01-04 17:32) [3]Премного благодарен Автоответчик, исправил, заработало!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c