еще один вопрос об использовании geckofx nsITextInputProcessor
Пример кода из этого вопроса:
private void SendKeyEvent(string type, string key, bool alt, bool ctrl, bool shift)
{
// Escape for JS.
key = key.Replace("\\", "\\\\");
var instance = Xpcom.CreateInstance<nsITextInputProcessor>("@mozilla.org/text-input-processor;1");
using (var context = new AutoJSContext(Window))
{
var result = context.EvaluateScript(
$@"new KeyboardEvent('', {{ key: '{key}', code: '', keyCode: 0, ctrlKey : {(ctrl ? "true" : "false")}, shiftKey : {(shift ? "true" : "false")}, altKey : {(alt ? "true" : "false")} }});");
instance.BeginInputTransaction((mozIDOMWindow)((GeckoWebBrowser)this).Document.DefaultView.DomWindow, new TextInputProcessorCallback());
instance.Keydown((nsIDOMEvent)result.ToObject(), 0, 1);
instance.Keyup((nsIDOMEvent)result.ToObject(), 0, 1);
}
Marshal.ReleaseComObject(instance);
}