2012-08-28 30 views
0

我有一個C#應用程序,並在其中嵌入的瀏覽器;它的任務是去我的網站,右鍵點擊一個鏈接並按'r',這樣屬性窗口就會出現(我用代碼移動鼠標)。它適用於我的筆記本電腦完美的,但是當我在我的電腦或任何其他設備,當程序執行此命令進行安裝:錯誤按壓鍵編程

SendKeys.Send("r"); 

我開始看到一個錯誤,告訴我:

未處理在你的應用程序中的異常請求的資源在 使用。 (異常來自HRESULT:0x800700AA)

這裏是我的代碼,我的筆記本電腦的工作原理:

int x = getXoffset(link); 
int y = getYoffset(link); 
webBrowser1.Document.Window.ScrollTo(x, y); 
Linker.Win32.POINT p2 = new Linker.Win32.POINT(); 
webBrowser1.Focus(); 
p2.x = webBrowser1.Left + 10; 
p2.y = webBrowser1.Top + 10; 
Linker.Win32.ClientToScreen(this.Handle, ref p2); 
Linker.Win32.SetCursorPos(p2.x, p2.y); 
MouseOperations.GetCursorPosition(); 
MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); 
MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightDown); 
MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightUp); 
SendKeys.Send("r"); 

我該怎麼辦?這個錯誤是什麼意思?

+0

對不起HRESULT錯了!是我不好 –

回答

0

的錯誤是因爲你WebBrowser控件仍然導航 一種解決方法是調用調用您的WebControl方法的委託,它是聯想到 您sendkey

public delegate void Senddelegate(); 

    Senddelegate = sendyourkey; 

    webBrowser1.BeginInvoke(new Senddelegate(sendyourkey)); 


    public void sendyourkey() 
    { 
     SendKeys.Send("r"); 
    } 

你必須異步調用你的sendkey到讓瀏覽器結束進程

+0

你的意思是,如果我停止我的瀏覽器的問題就解決了?像webbrowser1.stop()? –

+0

這是可能的,你爲什麼不將焦點設置要發送一個「R」的控制? –

+0

嗯好主意,你能告訴我怎麼樣?因爲我現在不如何設置焦點窗口 –