1

TChromiumのリンクで中マウスクリックをブロックするには?
この中マウス クリックを自分で処理して新しいタブで開きたいので、TChromium でこの中マウス クリックをブロックし、中マウスをフックして、選択したリンクを新しいタブで開く必要があります。
私はこのデフォルト機能を持っています:

function TCustomRenderProcessHandler.OnBeforeNavigation(const browser: ICefBrowser;
  const frame: ICefFrame; const request: ICefRequest;
  navigationType: TCefNavigationType; isRedirect: Boolean): Boolean;
begin
  Result:=False;
end;

しかし、正確には何も与えません。
TNX

4

1 に答える 1

1

私は別の方法でそれをしました。
@TLama、高速に動作するフック関数に感謝します。
だから、私はそれをどのようにやったか:

    //@HOOK PROC
    function MouseProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
    var
      HookStruct: TMouseHookStruct;
    begin
      HookStruct := PMouseHookStruct(lParam)^;

      if (nCode >= 0) then
      begin
        case wParam of
          WM_MBUTTONDOWN:
            Begin
              MiddleDown := True;
              LeftMouse := False;
            End;

          WM_LBUTTONDOWN:
            Begin
              MiddleDown := False;
              LeftMouse := True;
            End;

          WM_RBUTTONDOWN:
            Begin
              MiddleDown := False;
              LeftMouse := False;
            End;
        end;
      end;

      Result := CallNextHookEx(0, nCode, wParam, lParam);
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      If(MiddleDown) then
        Begin
          MiddleDown:=False;
          If(SelectedItem<>'') Then
            Form1.AddNewTab(SelectedItem,SelectedItem,'');
        End
      Else If(LeftMouse) then
        Begin
          LeftMouse:=False;
          If(SelectedItem<>'') Then
            FBrowsers[Current_FBrowser_Index].Load(SelectedItem);
        End;
    end;

function TCustomRenderProcessHandler.OnBeforeNavigation(const browser: ICefBrowser;
  const frame: ICefFrame; const request: ICefRequest;
  navigationType: TCefNavigationType; isRedirect: Boolean): Boolean;
begin

  if navigationType = NAVIGATION_LINK_CLICKED then
  begin
    Result := True;
  end
  else
    Result := False;
end;

だから、それが私のDCEF3でどのように機能するかです:)
助けてくれてありがとう!!!

于 2013-08-07T14:01:53.903 に答える