나는 다른 방법으로 그것을했습니다.
@TLama, 빠른 작업 후크 기능을 이용해 주셔서 감사합니다.
그래서, 내가 그것을 어떻게했는지 : 내 DCEF3 :) 도움 모든
감사에서 작동하는 방법 그래서
//@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;
을 먹으 렴!
네, 네비게이션을 취소하기 위해 True를 돌려 주어야하지만 아무것도하지 않습니다. 그러나 나는 그 이벤트 참조에 대한 링크 앞에 게시했습니다. (http://magpcss.org/ceforum/apidocs3/projects/ (default) /CefRenderProcessHandler.html#OnBeforeNavigation) 어디에 명확하게 명시되어 있습니다. 당신이 뭔가를 배우려고 애 쓰지는 않았지만 여기에 짧은 개념 증명이 있습니다 (http://pastebin.com/pNF1RmFb). 그러나 나는 훅 전문가가 아니며 마우스를 연결하기에 더 좋은 시간이 있는지 알지 못합니다. – TLama
증명이 작동하지 않습니다.'MiddleMouse'는'OnBeforeNavigation'에서 항상'False'와 같지만'Form1'에서는 괜찮습니다. – Priler