Мне нужно запретить элементу управления .NET WebBrowser показывать "Вы хотите открыть или сохранить этот файл?". и "Сохранить как". Вместо этого я хочу отобразить окно сообщения, сообщающее пользователям, что загрузка файлов отключена по соображениям безопасности.
Я начал с события FileDownload
WebBrowser
, но он не позволяет отменить. Затем я использовал подход CodeProject: Extended.NET 2.0 WebBrowser Control для реализации моего собственного события на основе исходного COM-вызова с использованием интерфейса DWebBrowserEvents2
. Когда я исправил код в соответствии с записью базы знаний MS о ошибке с подписью FileDownload, обработчик события был вызван, и я смог отмените загрузку.
Однако это не работает со всеми загрузками: загрузите URL-адреса, указывающие на URL-адрес, включая .exe
, поднимите событие и можно отменить до появления диалогового окна, но для других (например, .do
) обработчик событий не до тех пор, пока пользователь не нажимает Open
, Save
или Cancel
в диалоговом окне.
Возможным решением может быть перехватить сообщения WH_CALLWNDPROCRET
и "ответить" на диалог до того, как он будет показан пользователю, но это звучит как много усилий, и я также предпочел бы более чистое решение...
Кто-нибудь знает, как надежно блокировать все загрузки?