SendKeys не надежны с загруженным PDF
У меня есть элемент управления WebBrowser в приложении WinForm. Я загружаю PDF (используя Adobe 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?
1 ответ
Если вы пытаетесь показать определенную страницу PDF, вы можете добавить параметр в URL, чтобы указать страницу. Например:
webBrowser1.Navigate("http://somewhere.com/file.pdf#page=2")