1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

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

Тема в разделе "Inno Setup", создана пользователем Эмиль, 12 фев 2018.

  1. Новичок

    Регистрация:
    4 фев 2018
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской
    У меня есть проверка на открытый браузер 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?))
    Спасибо
     
  2. Ветеран Супер модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    353
    Симпатии:
    383
    Пол:
    Мужской
    Эмиль, можно как-то так, но имена классов придется искать самостоятельно (мне не хочется все браузеры устанавливать). ИМХО: Узнать имя класса поможет утилита AutoIt (погуглите), да и как отличить Chrome от Opera тоже вопрос т.к. имена класса (Chrome_WidgetWin_0/Chrome_WidgetWin_1) вроде одинаковы.

    Код (Inno):
    [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;
     

Поделиться этой страницей