如何阻止鼠标中键点击TChromium中的链接?
我想自己处理鼠标中键点击在新选项卡中打开它,所以我需要在TChromium中阻止鼠标中键点击,然后钩住鼠标中键,然后在新选项卡中打开选定的链接。
我有这个默认函数:
function TCustomRenderProcessHandler.OnBeforeNavigation(const browser: ICefBrowser;
const frame: ICefFrame; const request: ICefRequest;
navigationType: TCefNavigationType; isRedirect: Boolean): Boolean;
begin
Result:=False;
end;但它确实没有给出任何东西。
TNX
发布于 2013-08-07 22:01:54
我是用另一种方式做的。
@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中的工作方式:)
感谢大家的帮助!
https://stackoverflow.com/questions/18098989
复制相似问题