Как перехватить функциональность Windows «открыть URL-адрес в браузере по умолчанию в системе» - PullRequest
0 голосов
/ 24 сентября 2010

Здравствуйте, мне нужно знать, где и как Windows хранит команду, которая передает URL-адрес, выбранный в не-браузерной программе (например, Thunderbird), и запускает ее в браузере системы по умолчанию.

Мне нужна эта информация для написания скрипта, который позволил бы мне запустить браузер на защищенной изолированной виртуальной машине в песочнице, но при этом сохранить функцию автоматического открытия гиперссылок из не браузерных программ (т. Е. Почтового клиента в моей ОС HOST) вбраузер по моему выбору внутри моей виртуальной машины гостевой ОС (xp).

Кто-нибудь знает?Я использую Windows Server 2008 R2, если это имеет значение.Но я предполагаю, что большинство версий Windows, начиная с XP, делают это так же.

Спасибо

Редактировать: Я нашел эту статью MS kb

HKEY_CLASSES_ROOT\http\shell\open\command HKEY_CLASSES_ROOT\http\shell\open\ddeexec

Я изменил эти ключи, чтобы они указывали на мой скрипт, но Firefox на моей хост-системе все еще запускается, но потом жалуется, что он больше не является браузером по умолчанию.

Так что должны быть другие ключи реестра, к которым он возвращаетсякроме этого.

1 Ответ

0 голосов
/ 24 сентября 2010

Чтобы открыть URL в браузере по умолчанию, программы просто вызывают

ShellExecute(0, NULL, "http://...", NULL, NULL, 0)
...