Geckofx 45 正确模拟键盘输入的事件绑定方法

          var inputs = selection.GetElementsByTagName("input").Select(p => p as Gecko.DOM.GeckoInputElement).Where(p => p.GetAttribute("placeholder") == "Stake");
                    foreach (var input in inputs)
                    {
                        var curInput = input as Gecko.DOM.GeckoInputElement;

                        //curInput.SetAttribute("value", bet.BetAmount.ToString("0"));
                        #region
                        DomEventArgs ev = myGeckoWebBrowser.Document.CreateEvent("KeyEvents");
                        var webEvent = new Event(myGeckoWebBrowser.Window.DomWindow, ev.DomEvent as nsISupports);
                        //add focus event
                        webEvent.InitEvent("focus", true, false);
                        curInput.GetEventTarget().DispatchEvent(ev);
                        //.46
                        //0-9  48~57
                        //add keypress event
                        var nsIEventVar = ((nsIDOMKeyEvent)ev.DomEvent);
                        char[] amountChars = bet.BetAmount.ToString().ToCharArray();
                        foreach (var vchar in amountChars)
                        {
                            int keyCode = CommonHelper.ToKeyValue(vchar);
                            nsIEventVar.InitKeyEvent(new nsAString("keypress"), true, false, myGeckoWebBrowser.Window.DomWindow, false, false, false, false, (uint)keyCode, (uint)keyCode);
                            Xpcom.QueryInterface<nsIDOMEventTarget>(curInput.DomObject).DispatchEvent(nsIEventVar);
                        }
                        //add blur event
                        webEvent.InitEvent("blur", true, false);
                        curInput.GetEventTarget().DispatchEvent(ev);
                        #endregion
                        Application.DoEvents();
                        isetAmount = true;
                    }

  

转载于:https://www.cnblogs.com/mschen/p/6768306.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值