【问题标题】:SendKeys not reliable with PDF loaded加载 PDF 时 SendKeys 不可靠
【发布时间】:2013-05-16 16:19:34
【问题描述】:

我在 WinForm 应用程序中有一个 WebBrowser 控件。我正在加载 PDF(使用 Adob​​e Reader XI):

string url = Path.GetFullPath("test.pdf");
webBrowser1.Navigate(url);

一旦加载完成,我将尝试使用 SendKeys 通过单击按钮发送向下翻页键:

webBrowser1.Focus();
SendKeys.Send("{PGDN}");

此代码在普通 HTML 页面上运行良好,但在加载 PDF 时,它的行为不一致。通常它只会每隔一次点击向下滚动一页。以编程方式调用它两次似乎没有帮助。

webBrowser1.Focus();
SendKeys.Send("{PGDN}");
webBrowser1.Focus();
SendKeys.Send("{PGDN}");

我也试过用这个代码调用 SendMessage:

SendMessage(webBrowser1.Handle, WM_KEYDOWN, (IntPtr)VK_NEXT, (IntPtr)1);
SendMessage(webBrowser1.Handle, WM_KEYUP, (IntPtr)VK_NEXT, (IntPtr)1);

但这根本没有效果。

任何人都可以提出一个解决方案来模拟加载的 PDF 的向下翻页按键吗?

【问题讨论】:

    标签: c# winforms webbrowser-control sendkeys


    【解决方案1】:

    如果您想显示 PDF 的特定页面,您可以add a parameter to the URL 指定页面。例如:

    webBrowser1.Navigate("http://somewhere.com/file.pdf#page=2")

    【讨论】:

    • 这是我的第一种方法(我有一个上一个/下一个按钮)但是如果这个人在加载页面后滚动,我无法知道哪个页面是上一页或下一页。
    猜你喜欢
    • 2013-09-09
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    相关资源
    最近更新 更多