Список открытых окон проводника
От: xteam777  
Дата: 15.03.23 14:42
Оценка:
Доброго времени.
Собственно пытаюсь получить открытые окна проводника. Возникает ошибка при обращении к Item.
Что не так?

Debugger Exception Notification
---------------------------
Project Project4.exe raised exception class $C0000005 with message 'access violation at 0x00c6fd3c: read of address 0x00000000'.
---------------------------
Break Continue Copy Help
---------------------------


uses SHDocVw;

Function GetCurrentExplorerDirectory: String;
var
  ShellWindows: IShellWindows;
  i: Integer;
  h: HWND;
begin
  Result := '';

  {Explorer - глобальная переменная для доступа ко всем откр.окнам Explorer}
  ShellWindows := CoShellWindows.Create;

  {Цикл прохода по всем откр.в настоящий момент окнам Explorer}
  for i := 0 to ShellWindows.Count - 1 do
    {Если очередное окно пребывает сейчас в фокусе}
    if GetForegroundWindow = (ShellWindows.Item(i) as IWebbrowser2).HWND then <----------------------------------- ВОТ ТУТ ОШИБКА
    begin
      {Получаем его Handle (дескриптор окна) }
      h := (ShellWindows.Item(i) as IWebbrowser2).HWND; 
    end;
end;
Отредактировано 15.03.2023 14:48 xteam777 . Предыдущая версия . Еще …
Отредактировано 15.03.2023 14:44 xteam777 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.