104 lines
4.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|