Files
lserp_cs_6.0/插件库/Lskj.Control/BrowserSetting2/BsKeyboardHandler.cs
T
2026-07-02 10:11:39 +00:00

104 lines
4.2 KiB
C#

using Lskj.Business;
using Lskj.Control;
using Lskj.Model;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Xilium.CefGlue;
namespace Lskj.Control.BrowserSetting2
{
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))
{
if (ERPInfo.Instance.UserName.Equals("管理员"))
{
//创建 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
{
if ((SystemInfo.Instance.HiddenUrl && ERPInfo.Instance.UserName.Equals("管理员")) || !SystemInfo.Instance.HiddenUrl)
{
string NUrl = browser.GetMainFrame().Url + "";
if (string.IsNullOrWhiteSpace(NUrl))
{
MessageBox.Show("地址还未加载");
}
else
{
//弹出当前网址
MessageBox.Show(string.Format("Url:{0}已复制到粘贴板", NUrl));
System.Windows.Forms.Clipboard.SetText(NUrl);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
break;
case 38://↑
if (keyEvent.EventType.Equals(CefKeyEventType.RawKeyDown))
{
bool ctrlDown = (keyEvent.Modifiers & CefEventFlags.ControlDown) != 0;
if (ctrlDown && browser.GetHost().GetZoomLevel() < 3)
{
browser.GetHost().SetZoomLevel(browser.GetHost().GetZoomLevel() + 0.1);
}
}
break;
case 40://↓
if (keyEvent.EventType.Equals(CefKeyEventType.RawKeyDown))
{
bool ctrlDown = (keyEvent.Modifiers & CefEventFlags.ControlDown) != 0;
if (ctrlDown && browser.GetHost().GetZoomLevel() > -3)
{
browser.GetHost().SetZoomLevel(browser.GetHost().GetZoomLevel() - 0.1);
}
}
break;
}
return false;
}
}
}