Проверка на открытые браузеры

Эмиль

Новичок
У меня есть проверка на открытый браузер IE.

function CheckOpenIE(): Boolean;
begin
result := true;
while (FindWindowByClassName('IEFrame') <> 0) do
begin
if MessageBox(hWnd, 'Обнаружены открытые окна браузера Internet Explorer!' + #13#10#13#10 + 'Пожалуйста, закройте все вкладки браузера Internet Explorer и нажмите кнопку "Да".', 'Установка', MB_YESNO or MB_ICONINFORMATION or MB_TASKMODAL) = IDNO then
begin
result := false;
exit;
end;
end;
end;


Как можно сюда же запилить проверку на открытые Google Chrome, Mozilla Firefox, Yandex Browser?))
Спасибо
 

Nemko

Дилетант
Модератор
Эмиль, можно как-то так, но имена классов придется искать самостоятельно (мне не хочется все браузеры устанавливать). ИМХО: Узнать имя класса поможет утилита AutoIt (погуглите), да и как отличить Chrome от Opera тоже вопрос т.к. имена класса (Chrome_WidgetWin_0/Chrome_WidgetWin_1) вроде одинаковы.

Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={sd}\My Application

[Code]
function CheckOpenIE(classwindow: AnsiString): Boolean;
begin
  while (FindWindowByClassName(classwindow) <> 0) do begin
    Result:=True;
    Exit;
  end;
end;

function InitializeSetup: Boolean;
var
  Error: Byte;
begin
  if (Error = 0) and CheckOpenIE('IEFrame') then Error:=1;
  if (Error = 0) and CheckOpenIE('TCompileForm') then Error:=2;
  if (Error = 0) and CheckOpenIE('Chrome_WidgetWin_1') then Error:=3;
case Error of
  0: Result:=True;
  1: MsgBox('Запущен браузер IEFrame', mbInformation, mb_Ok);
  2: MsgBox('Запущена программа Inno Setup', mbInformation, mb_Ok);
  3: MsgBox('Запущен браузер Chrome или Opera', mbInformation, mb_Ok);
 end;
end;
 
Сверху