Менеджер загрузок для Internet Explorer в C # - PullRequest
0 голосов
/ 03 октября 2010

Я хочу переопределить функцию менеджера загрузок Internet Explorer.Мне удалось реализовать интерфейс IDownloadManager в c # и зарегистрированный COM, чтобы я мог перехватить событие загрузки и выполнить пользовательское действие.У меня также есть приложение для управления загрузками.

Меня беспокоит, должна ли реализация IDownloadManager быть частью моего приложения или скорее отдельным проектом, который взаимодействует только с моим менеджером загрузки.Я бы предпочел один подход к применению, но я не знаю, как его реализовать.

Основная проблема, которую я вижу, заключается в том, что я хочу, чтобы был запущен только один экземпляр диспетчера загрузки, поэтому из кода COM я, вероятно, должен:

1) проверить, запущен ли экземпляр (используя GetWindow из winapi?), если нет, то запустите его.

2) передайте URL-адрес загрузки экземпляру.

Это должно работать, но я неопытен с winapi и подозреваю, что можетбыть лучшим способом сделать это.Есть намеки?Thansk, Matt

Ответы [ 2 ]

0 голосов
/ 04 октября 2010

Часто бывает достаточно просто передать URL-адрес загрузки другому приложению, но во многих случаях это не будет работать с такой простой архитектурой.В частности, сайты, для которых требуются определенные файлы cookie или информация об аутентификации, обычно не работают без этой информации, и повторный запуск загрузки в другом приложении может привести к отклонению соединения сервером (некоторые сайты отказывают в разрешении нескольких соединений).

Вообще говоря, вам следует избегать использования .NET для создания расширений Internet Explorer, так как при этом возникают проблемы с производительностью и надежностью.(Если вы должны использовать .NET, вы должны попытаться использовать .NET4, которая не страдает от проблемы параллельного управления версиями, которая есть в более ранних версиях CLR).

0 голосов
/ 03 октября 2010

Вам следует использовать вспомогательные помощники COM-сервера .Инфраструктура COM позаботится о правильном управлении процессами, включая блокировку обслуживания и правильную последовательность выключения (что вы не можете получить самостоятельно, без помощи COM).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...