public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type != KeyType.KeyUp || !Enum.IsDefined(typeof(Keys), windowsKeyCode)) { return(false); } var key = (Keys)windowsKeyCode; if (key == Keys.F12) { browser.ShowDevTools(); } else if (key == Keys.F5 && modifiers == CefEventFlags.ControlDown) // Ctrl+F5 - Cache reload { browser.Reload(true); } else if (key == Keys.F5) // F5 - Reload { browser.Reload(); } else if (key == Keys.I && modifiers == (CefEventFlags.ControlDown | CefEventFlags.ShiftDown)) // Ctrl+Shift+I { browser.ShowDevTools(); } else if (key == Keys.F1) // F1 - Opens Wiki page { Process.Start(new ProcessStartInfo { FileName = "https://github.com/TcNobo/TcNo-Acc-Switcher/wiki", UseShellExecute = true }); } return(false); }
/// <inheritdoc/>> public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { var result = false; Debug.WriteLine("OnKeyEvent: KeyType: {0} 0x{1:X} Modifiers: {2}", type, windowsKeyCode, modifiers); // TODO: Handle MessageNeeded cases here somehow. if (type == KeyType.KeyUp && Enum.IsDefined(typeof(Keys), windowsKeyCode)) { var key = (Keys)windowsKeyCode; switch (key) { case Keys.F12: browser.ShowDevTools(); break; case Keys.F5: if (modifiers == CefEventFlags.ControlDown) { browser.Reload(true); //强制忽略缓存 } else { browser.Reload(); } break; } } return(result); }
bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { if ((int)commandId == ShowDevTools) { browser.ShowDevTools(); } if ((int)commandId == CloseDevTools) { browser.CloseDevTools(); } if ((int)commandId == S_TPIP) { if (Library.is_PIP) { Library.stopPIP(); } else { Library.startPIP(); } } //if ((int)commandId == ShowSetting) //{ // frmSetting frm = new frmSetting(); // frm.ShowDialog(); //} return(false); }
bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { switch ((int)commandId) { case ShowDevTools: browser.ShowDevTools(); break; case CloseDevTools: browser.CloseDevTools(); break; case SaveImage: ExecuteSaveFileByUrl(parameters.SourceUrl.ToString(), frame); break; case SaveLink: ExecuteSaveFileByUrl(parameters.UnfilteredLinkUrl, frame); break; case CopyLink: Clipboard.SetDataObject(parameters.UnfilteredLinkUrl); break; case LinkOpenDefaultBrowser: System.Diagnostics.Process.Start("explorer.exe", parameters.UnfilteredLinkUrl); break; } return(false); }
/// <summary> /// 实现F12调出调试窗口 /// </summary> /// <param name="browserControl"></param> /// <param name="browser"></param> /// <param name="type"></param> /// <param name="windowsKeyCode"></param> /// <param name="nativeKeyCode"></param> /// <param name="modifiers"></param> /// <param name="isSystemKey"></param> /// <returns></returns> public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type != KeyType.KeyUp) { return(false); } //todo 使用System.Windows.Input.Key.F12来实现 //目前windowsKeyCode和System.Windows.Input.Key.F12无法对应 没有深入研究 if (windowsKeyCode == F12KeyCode) { Console.WriteLine("F12"); browser.ShowDevTools(); return(true); } if (windowsKeyCode == F5KeyCode) { Console.WriteLine("F5"); if (browser.MainFrame?.Url != null) { if (browser.MainFrame.Url.StartsWith("chrome-devtools:", StringComparison.OrdinalIgnoreCase)) { //chrome-devtools://devtools/devtools_app.html return(false); } } browser.Reload(true); return(true); } return(false); }
public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp && Enum.IsDefined(typeof(Keys), windowsKeyCode)) { var key = (Keys)windowsKeyCode; if (key == Keys.F5) { browser.Reload(); } else if (key == Keys.F12) { browser.ShowDevTools(); } else if (key == Keys.P) { if (ChromeWebBrowser.spiderManager.taskStatus.Visible) { ChromeWebBrowser.spiderManager.taskStatus.Activate(); } else { if (ChromeWebBrowser.spiderManager.taskStatus.IsDisposed) { ChromeWebBrowser.spiderManager.taskStatus = new TaskStatusMain(); } ChromeWebBrowser.spiderManager.taskStatus.Show(); } } } return(false); }
/// <summary> /// Called before a keyboard event is sent to the renderer. Return true if the event /// was handled or false otherwise. If the event will be handled in CefSharp.IKeyboardHandler.OnKeyEvent(CefSharp.IWebBrowser,CefSharp.IBrowser,CefSharp.KeyType,System.Int32,System.Int32,CefSharp.CefEventFlags,System.Boolean) /// as a keyboard shortcut set isKeyboardShortcut to true and return false. /// </summary> /// <param name="browserControl">The CefSharp.IWebBrowser control this request is for.</param> /// <param name="browser">The browser instance.</param> /// <param name="type">Whether this was a key up/down/raw/etc...</param> /// <param name="windowsKeyCode">The Windows key code for the key event. This value is used by the DOM specification. /// Sometimes it comes directly from the event (i.e. on Windows) and sometimes it's /// determined using a mapping function. See WebCore/platform/chromium/KeyboardCodes.h /// for the list of values.</param> /// <param name="nativeKeyCode">The native key code. On Windows this appears to be in the format of WM_KEYDOWN/WM_KEYUP/etc... lParam data.</param> /// <param name="modifiers">What other modifier keys are currently down: Shift/Control/Alt/OS X Command/etc...</param> /// <param name="isSystemKey">Indicates whether the event is considered a "system key" event (see http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for details).</param> /// <param name="isKeyboardShortcut">See the summary for an explanation of when to set this to true.</param> /// <returns>v</returns> public bool OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { isKeyboardShortcut = false; //Logger.Debug("OnPreKeyEvent: KeyType: {0} 0x{1:X} Modifiers: {2}", type, windowsKeyCode, modifiers); // Debug.WriteLine("OnPreKeyEvent PreProcessControlState: {0}", state); if (type == KeyType.RawKeyDown) { switch ((Keys)windowsKeyCode) { // F12 to open browser dev console. case Keys.F12: browser.ShowDevTools(); return(true); // F5 to reload (refresh); Shift + F5 to reload without cache case Keys.F5: browser.Reload(modifiers == CefEventFlags.ShiftDown); return(true); default: break; } } return(false); }
public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp && Enum.IsDefined(typeof(Keys), windowsKeyCode)) { var key = (Keys)windowsKeyCode; switch (key) { case Keys.F12: browser.ShowDevTools(); break; case Keys.F5: if (modifiers == CefEventFlags.ControlDown) { //MessageBox.Show("ctrl+f5"); browser.Reload(true); //强制忽略缓存 } else { //MessageBox.Show("f5"); browser.Reload(); } break; } } return(false); }
bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { switch ((int)commandId) { case GetCurrentCookie: _this.EndWork(browserControl.Address); break; case InputCookie: string cookieStr = ""; _this.form.Invoke(new Action(() => { cookieStr = Utils.InputDialog("输入 Cookie 字符串 (通过 Chrome EditThisCookie 扩展完整获取)", "手动输入 Cookie"); })); if (!string.IsNullOrEmpty(cookieStr)) { _this.EndWork(null, cookieStr); } else { MessageBox.Show("Cookie 字符串不能为空", "手动输入 Cookie", MessageBoxButtons.OK, MessageBoxIcon.Warning); } break; case ShowDevTools: browser.ShowDevTools(); break; } return(false); }
public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp && Enum.IsDefined(typeof(Keys), windowsKeyCode)) { var key = (Keys)windowsKeyCode; switch (key) { case Keys.F1: //F1事件,打开钱箱 PublicUtil.openMoneyBox(); break; case Keys.F4: //F4事件,释放内存 MainForm.ClearMemory(); break; case Keys.F5: //F5事件,刷新 browser.Reload(); break; case Keys.F12: //F12事件,调出开发者工具 browser.ShowDevTools(); break; } } return(false); }
protected virtual bool HandleRawKey(IWebBrowser browserControl, IBrowser browser, Keys key, CefEventFlags modifiers) { if (modifiers == (CefEventFlags.ControlDown | CefEventFlags.ShiftDown) && key == Keys.I) { if (BrowserUtils.HasDevTools) { browser.ShowDevTools(); } else { browserControl.AsControl().InvokeSafe(() => { string extraMessage; if (Program.IsPortable) { extraMessage = "Please download the portable installer, select the folder with your current installation of TweetDuck Portable, and tick 'Install dev tools' during the installation process."; } else { extraMessage = "Please download the installer, and tick 'Install dev tools' during the installation process. The installer will automatically find and update your current installation of TweetDuck."; } FormMessage.Information("Dev Tools", "You do not have dev tools installed. " + extraMessage, FormMessage.OK); }); } return(true); } return(false); }
public bool OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { if (type != KeyType.KeyUp) { return(false); } Keys key = (Keys)windowsKeyCode | modifiers.GetKey(); switch (key) { case Keys.F5 | Keys.None: browser.Reload(); return(true); case Keys.F9 | Keys.None: case Keys.F12 | Keys.None: browser.ShowDevTools(); return(true); } if (key == (Keys.Control | Keys.P)) { var relativePath = String.Format(@".\output-{0}.pdf", Guid.NewGuid().ToString()); var fullPath = Path.GetFullPath(relativePath); Debug.WriteLine(browser.GetType()); PdfPrintSettings pdfPrintSettings = new PdfPrintSettings(); pdfPrintSettings.Landscape = true; pdfPrintSettings.BackgroundsEnabled = true; browser.PrintToPdfAsync(fullPath, pdfPrintSettings).ContinueWith(OnPrintToPdfCompleted, fullPath); return(true); } return(false); }
bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { if ((int)commandId == ShowDevTools) { browser.ShowDevTools(); } return(false); }
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { int id = (int)commandId; if (id == ShowDevTools) { browser.ShowDevTools(); } if (id == CloseDevTools) { browser.CloseDevTools(); } if (id == SaveImageAs) { browser.GetHost().StartDownload(parameters.SourceUrl); } if (id == SaveLinkAs) { browser.GetHost().StartDownload(parameters.LinkUrl); } if (id == OpenLinkInNewTab) { ChromiumWebBrowser newBrowser = myForm.AddNewBrowserTab(parameters.LinkUrl, false, browser.MainFrame.Url); } if (id == CopyLinkAddress) { Clipboard.SetText(parameters.LinkUrl); } if (id == CloseTab) { myForm.InvokeOnParent(delegate() { myForm.CloseActiveTab(); }); } if (id == RefreshTab) { myForm.InvokeOnParent(delegate() { myForm.RefreshActiveTab(); }); } if (id == CopyImageLink) { Clipboard.SetText(parameters.SourceUrl); } if (id == CopyImage) { WebClient wc = new WebClient(); using (MemoryStream stream = new MemoryStream(wc.DownloadData(parameters.SourceUrl))) { Image img = Bitmap.FromStream(stream); Clipboard.SetImage(img); } } return(false); }
public bool OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { if (type == KeyType.RawKeyDown && windowsKeyCode == (int)Keys.F12) { browser.ShowDevTools(); return(true); } return(false); }
bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { if ((int)commandId == ShowDevTools) { browser.ShowDevTools(); } if ((int)commandId == CloseDevTools) { browser.CloseDevTools(); } return false; }
public bool OnKeyEvent(IWebBrowser chromiumWebBrowser, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { #if DEBUG var winKey = (Keys)windowsKeyCode; if (winKey == Keys.F && modifiers == CefEventFlags.ControlDown) { browser.ShowDevTools(); return(true); } #endif return(false); }
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { #if DEBUG if (commandId == CEF_MENU_OPEN_DEV_TOOLS) { browser.ShowDevTools(); return(true); } #endif return(false); }
/// <inheritdoc/>> public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { var result = false; // Debug.WriteLine("OnKeyEvent: KeyType: {0} 0x{1:X} Modifiers: {2}", type, windowsKeyCode, modifiers); // TODO: Handle MessageNeeded cases here somehow. if (type == KeyType.RawKeyDown && windowsKeyCode == (int)Keys.F6) { browser.ShowDevTools(); } return(result); }
//event that receive url popup /*public event popup_request;*/ bool ILifeSpanHandler.OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser) { //get url popup /* if (this.popup_request != null) * this.popup_request(targetUrl); */ //stop open popup window browser.ShowDevTools(); newBrowser = null; return(true); }
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { #if DEBUG if ((int)commandId == ShowDevTools) { browser.ShowDevTools(); } if ((int)commandId == CloseDevTools) { browser.CloseDevTools(); } #endif return(false); }
public bool OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { switch ((Keys)windowsKeyCode) { case Keys.F12: browser.ShowDevTools(); break; case Keys.F5: browser.Reload(); //此处可以添加想要实现的代码段 break; } return(false); }
public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp && Enum.IsDefined(typeof(Keys), windowsKeyCode)) { var key = (Keys)windowsKeyCode; switch (key) { case Keys.F12: //F12事件,调出开发者工具 browser.ShowDevTools(); break; } } return(false); }
public bool OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { if (KeyType.RawKeyDown == type) { //if (windowsKeyCode == (int)Keys.F5) //{ // browser.Reload(); //此处可以添加想要实现的代码段 //} if (windowsKeyCode == (int)Keys.F12) { browser.ShowDevTools(); } } return(false); }
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { switch (commandId) { case CefMenuCommand.CustomFirst: browser.ShowDevTools(); break; case CefMenuCommand.Reload: browser.GoBack(); break; } return(false); }
public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp) { if (windowsKeyCode == (int)Keys.F5) { browser.Reload(true); //无视缓存刷新 } else if (windowsKeyCode == (int)Keys.F12) { browser.ShowDevTools(); //开发者模式 } } return(false); }
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { if (commandId == (CefMenuCommand)ReloadPage) { browser.Reload(); } else if (commandId == (CefMenuCommand)DevTools) { browser.ShowDevTools(); } else if (commandId == (CefMenuCommand)Home) { ((MainForm)Form.ActiveForm).goHome(); } return(false); }
public bool OnKeyEvent(IWebBrowser chromiumWebBrowser, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp) { switch (windowsKeyCode) { case KEY_F5: browser.Reload(); break; case KEY_F12: browser.ShowDevTools(); break; } } return(false); }
public bool OnPreKeyEvent(IWebBrowser chromiumWebBrowser, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { const int vkF5 = 0x74; const int vkF11 = 0x7A; const int vkF12 = 0x7B; switch (windowsKeyCode) { case vkF5: if (modifiers == CefEventFlags.ControlDown) { browser.Reload(true); //强制忽略缓存 } else { browser.Reload(); } return(true); case vkF11: MainForm._mainForm.BeginInvoke(new Action(() => { if (IsMaxWindow) { MainForm._mainForm.FormBorderStyle = FormBorderStyle.FixedSingle; MainForm._mainForm.WindowState = FormWindowState.Normal; } else { MainForm._mainForm.FormBorderStyle = FormBorderStyle.None; MainForm._mainForm.WindowState = FormWindowState.Maximized; } IsMaxWindow = !IsMaxWindow; })); return(true); case vkF12: browser.ShowDevTools(); return(true); } return(false); }
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { int id = (int)commandId; if (id == ShowDevTools) { browser.ShowDevTools(); } if (id == CloseDevTools) { browser.CloseDevTools(); } if (id == SaveImageAs) { browser.GetHost().StartDownload(parameters.SourceUrl); } if (id == SaveLinkAs) { browser.GetHost().StartDownload(parameters.LinkUrl); } if (id == OpenLinkInNewTab) { ChromiumWebBrowser newBrowser = myForm.AddNewBrowserTab(parameters.LinkUrl, false, browser.MainFrame.Url); } if (id == CopyLinkAddress) { Clipboard.SetText(parameters.LinkUrl); } if (id == CloseTab) { myForm.InvokeOnParent(delegate() { myForm.CloseActiveTab(); }); } if (id == RefreshTab) { myForm.InvokeOnParent(delegate() { myForm.RefreshActiveTab(); }); } return(false); }
bool IKeyboardHandler.OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { #if (!RELEASE) if ((windowsKeyCode == this.WINDOWS_KEY_CODE_TILDE) && (type == KeyType.KeyUp)) { if (this.isDevToolOpen) { browser.CloseDevTools(); this.isDevToolOpen = false; } else { this.isDevToolOpen = true; browser.ShowDevTools(); } } #endif return(false); }