我有一个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 :(得分:0)
错误是因为你的webbrowser控件仍在导航 解决方法是将webcontrol的invoke方法调用到与之关联的委托 你的发送密钥
public delegate void Senddelegate();
Senddelegate = sendyourkey;
webBrowser1.BeginInvoke(new Senddelegate(sendyourkey));
public void sendyourkey()
{
SendKeys.Send("r");
}
你必须异步调用sendkey才能让浏览器完成进程