【发布时间】:2015-09-10 22:08:49
【问题描述】:
我正在尝试让我的 watin 应用程序按下 down 键,但我不知道该怎么做。我在之前的帖子中看到过,你应该使用它:
System.Windows.Forms.SendKeys.SendWait("{DOWN}");
但这对我来说不起作用,因为我使用的是网络浏览器,有什么建议吗?
【问题讨论】:
标签: watin
我正在尝试让我的 watin 应用程序按下 down 键,但我不知道该怎么做。我在之前的帖子中看到过,你应该使用它:
System.Windows.Forms.SendKeys.SendWait("{DOWN}");
但这对我来说不起作用,因为我使用的是网络浏览器,有什么建议吗?
【问题讨论】:
标签: watin
您需要告诉 Windows 将其焦点设置在浏览器窗口上,然后发送正确的键盘命令。
例如,这段代码 sn-p 会将焦点设置到浏览器并将“DOWN”键发送到浏览器窗口。
[DllImport("user32.dll")]
private static extern IntPtr SetFocus(IntPtr hWnd);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private void SendDownKey(Browser browser)
{
SetForegroundWindow(browser.document.DomContainer.hWnd);
SetFocus(browser.document.DomContainer.hWnd);
SendKeys.SendWait("{DOWN}");
}
【讨论】:
System.Windows.Forms.SendKeys.SendWait("{DOWN}");建议您以 Windows 应用程序为目标。可以试试用 Web 代替 Windows 吗?
希望对您有所帮助。如果这不起作用,请告诉我,我会尝试对此进行深入研究。
【讨论】:
以下问题中有几个很好的答案可以回答:
Pass a key stroke (i.e., Enter Key) into application using WatiN scripts
【讨论】: