Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как скрыть контекстное меню TWebBrowser

Delphi , Интернет и Сети , Браузер

Как скрыть контекстное меню TWebBrowser

Автор: http://www.swissdelphicenter.ch

var
  HookID: THandle;

function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
var
  szClassName: array[0..255] of Char;
const
  ie_name = 'Internet Explorer_Server';
begin
  case nCode < 0 of
    True:
      Result := CallNextHookEx(HookID, nCode, wParam, lParam)
  else
    case wParam of
      WM_RBUTTONDOWN,
        WM_RBUTTONUP:
        begin
          GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND, szClassName,
            SizeOf(szClassName));
          if lstrcmp(@szClassName[0], @ie_name[1]) = 0 then
            Result := HC_SKIP
          else
            Result := CallNextHookEx(HookID, nCode, wParam, lParam);
        end
    else
      Result := CallNextHookEx(HookID, nCode, wParam, lParam);
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if HookID <> 0 then
    UnHookWindowsHookEx(HookID);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Webbrowser1.Navigate('http://www.google.com');
end;

Программный код на Delphi демонстрирует, как использовать Windows- hooks для отлавливания событий мыши и скрытия контекстных меню в браузере Internet Explorer (IE). Функция MouseProc - это callback-функция, которая обрабатывает события мыши, и она проверяет, является ли текущее окно экземпляром IE. Если это так, функция пропускает контекстное меню, возвращая значение HC_SKIP.

Вот разбивка кода:

  1. Функция MouseProc объявлена как стандартный вызов (stdcall) и принимает четыре параметра: nCode, wParam, lParam, а также возвращает целое число.
  2. Статements case проверяет, является ли hook установкой (например, nCode < 0) или получением события мыши (например, nCode >= 0). Если это установка, она вызывает следующий hook-функцию в цепочке (CallNextHookEx). Если это обработка события мыши, она проверяет тип события (WM_ RBUTTONDOWN или WM_ RBUTTONUP) и имя класса окна.
  3. Если окно является экземпляром IE, функция lstrcmp используется для сравнения имени класса окна с именем класса IE ('Internet Explorer_Server'). Если они совпадают, переменная Result устанавливается в значение HC_ SKIP, которое пропускает контекстное меню.
  4. Процедура FormCreate настраивает Windows-hook для событий мыши с помощью функции SetWindowsHookEx, передавая константу WH_MOUSE, указатель на функцию MouseProc, а также идентификатор текущего потока как параметры.
  5. Процедура FormDestroy удаляет mouse-hook с помощью функции UnHookWindowsHookEx при закрытии формы.

Код также включает в себя обработчик события кнопки Button1Click, который навигирует на Google.com с помощью контрола WebBrowser.

Обратите внимание, что этот код работает только с Internet Explorer и может не работать с другими браузерами или приложениями. Кроме того, важно помнить, что отлавливание системных событий может иметь нежелательные последствия, такие как нарушение работы других приложений или вызов системной нестабильности. Используйте этот код на свой страх и риск!

В статье описано, как скрыть контекстное меню TWebBrowser в приложении на языке Delphi с помощью установки хука WM_RBUTTONDOWN и проверки имени класса окна.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:03:59/0.0059959888458252/1