Files
lserp_cs_6.0/插件库/Lskj.Control/BrowserSetting/BsKeyboardHandler.cs
T
cyf 6f97314c83 SVN r1162
SVN-Revision: r1162
2026-05-09 07:56:18 +00:00

76 lines
3.2 KiB
C#

using Lskj.Business;
using Lskj.Control;
using Lskj.Model;
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.Control.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))
{
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.EventT