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");

我应该怎么办?这个错误是什么意思?

4

1 回答 1

0

错误是因为您的 webbrowser 控件仍在导航解决方法是将 webcontrol 的调用方法调用到与您的 sendkey 关联的委托

 public delegate void Senddelegate();

    Senddelegate = sendyourkey;

    webBrowser1.BeginInvoke(new Senddelegate(sendyourkey));


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

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

于 2012-08-28T18:43:44.230 回答