Използвайте щракване с мишката в awesomium (c#)

Използвам awesomium и се опитвам да използвам командата "InjectMouseDown." за съжаление нищо не се случва. Опитвам се със следния код:

private void newbrowser()
        {
            dir = "C:\\AwCache\\" + RandomString(10);

            _webView = WebCore.CreateWebView(800, 600);
            _webView.ParentWindow = this.Handle;
            using (WebSession session = WebCore.CreateWebSession(dir, new WebPreferences() { /*CustomCSS = "body { zoom: 75%; }", ProxyConfig = proxyok,*/ }))
            {
                _webView.Source = new Uri("http://www.google.com");
                _webView.DocumentReady += WebViewOnDocumentReady;
            }
        }
private void WebViewOnDocumentReady(object sender, UrlEventArgs urlEventArgs)
        {
            timer1.Enabled = true;
        }
private void timer1_Tick(object sender, EventArgs e)
        {
                _webView.InjectMouseMove(5, 100);
                _webView.InjectMouseDown(MouseButton.Left);
}

person Ldg    schedule 19.04.2013    source източник
comment
Преминали ли сте през кода си, за да проверите дали timer1_Tick изобщо се извиква? Можем ли да видим кода, където сте свързали събитието за този таймер?   -  person tnw    schedule 19.04.2013
comment
да, таймерът се извиква, защото ако сложа messagebox.show в timer1_Tick работи. Благодаря ти за помощта   -  person Ldg    schedule 19.04.2013


Отговори (1)


В timer1_tick добавете и InjectMouseUp(MouseButton.Left);. След като инжектирах всичките три събития на мишката (InjectMouseMove, InjectMouseDown, InjectMouseUp) в WebView, той проработи.

По-долу е примерният код, който работи за мен (въпреки че е написан на C++).

 void Containerclass::mousePressed(ofMouseEventArgs &e)
 {
   webview->InjectMouseMove(e.x - loc.x, e.y - loc.y); 
   webview->InjectMouseDown(MouseButton_Left);
   webview->InjectMouseUp(MouseButton_Left);
 }
person Suma    schedule 02.09.2013