Files
lserp_cs_5.0/插件库/Lskj.MyControl/BrowserSetting/BsKeyboardHandler.cs
T
2026-07-10 15:25:05 +08:00

63 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Xilium.CefGlue;
namespace Lskj.MyControl.BrowserSetting
{
public class BsKeyboardHandler : CefKeyboardHandler
{
protected override bool OnKeyEvent(CefBrowser browser, CefKeyEvent keyEvent, IntPtr osEvent)
{
switch (keyEvent.WindowsKeyCode)
{
case 123://功能键 F12 的KeyCode
if (keyEvent.EventType.Equals(CefKeyEventType.RawKeyDown))
{
//创建 CefWindowInfo 对象
var wi = CefWindowInfo.Create();
//开发者工具以独立窗口弹出 窗口名 DevTools
wi.SetAsPopup(IntPtr.Zero, "DevTools");
//弹出开发者工具
browser.GetHost().ShowDevTools(wi, new BsClient(), new CefBrowserSettings(), new CefPoint(0, 0));
}
break;
case 116://功能键 F5 的KeyCode
if (keyEvent.EventType.Equals(CefKeyEventType.RawKeyDown))
{
//刷新
browser.Reload();
}
break;
case 27:
if (keyEvent.EventType.Equals(CefKeyEventType.RawKeyDown))
{
browser.GetMainFrame().ExecuteJavaScript("{document.webkitExitFullscreen()}", browser.GetMainFrame().Url, 0);
}
break;
case 113://功能键 F2 的KeyCode
if (keyEvent.EventType.Equals(CefKeyEventType.RawKeyDown))
{
try
{
//弹出当前网址
string NUrl = browser.GetMainFrame().Url + "";
MessageBox.Show(string.Format("Url:{0}已复制到粘贴板", NUrl));
System.Windows.Forms.Clipboard.SetText(NUrl);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
break;
}
return false;
}
}
}