不要用 SendKeys.SendWait("^a"); 这个不一定要自己的窗体中执行Control+A , 现在要在Cefsharp控件网页中执行Control+A 或 Control+C 操作。
SendKeys.SendWait("^a") ==> Control+A ,
SendKeys.SendWait("^c") ==> Control+C,
///
/// 按键 Control + A Control + C
///
///
/// A=65 C=67
private void ExecuteCtrl(IWebBrowser browser,int keyCode)
{
if (browser == null || browser.IsDisposed || !browser.IsBrowserInitialized)
{
MessageBox.Show("浏览器未初始化!");
return;
}
var host = browser.GetBrowserHost();
if (host == null) return;
// 1. 按下 Ctrl 键
host.SendKeyEvent(new KeyEvent
{
Type = KeyEventType.KeyDown,
Modifiers = CefEventFlags.ControlDown // 标记Ctrl键按下
});
// 2. 按下并释放 A 键 (KeyCode: 65 对应 A , 67 - > C )
host.SendKeyEvent(new KeyEvent
{
Type = KeyEventType.KeyDown,
WindowsKeyCode = keyCode,
Modifiers = CefEventFlags.ControlDown // 保持Ctrl键按下状态
});
host.SendKeyEvent(new KeyEvent
{
Type = KeyEventType.KeyUp,
WindowsKeyCode = keyCode,
Modifiers = CefEventFlags.ControlDown
});
// 3. 释放 Ctrl 键
host.SendKeyEvent(new KeyEvent
{
Type = KeyEventType.KeyUp,
Modifiers = CefEventFlags.None
});
}