以编程方式按键错误

时间:2012-08-28 18:17:08

标签: c# browser runtime-error unhandled-exception

我有一个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");

我该怎么办?这个错误意味着什么?

1 个答案:

答案 0 :(得分:0)

错误是因为你的webbrowser控件仍在导航 解决方法是将webcontrol的invoke方法调用到与之关联的委托 你的发送密钥

 public delegate void Senddelegate();

    Senddelegate = sendyourkey;

    webBrowser1.BeginInvoke(new Senddelegate(sendyourkey));


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

你必须异步调用sendkey才能让浏览器完成进程