2009-11-06 1 views
1

Я обращаюсь к SHDocVw.InternetExplorer из SHDocVw.ShellWindowsClass(). Я вижу страницу, на которой в настоящее время находится экземпляр браузера (свойство LocationURL), но мне действительно нужен последний запрос на получение, который был выполнен для браузера. Моя особая потребность в том, что мое приложение было просто запущено для обработки файла, который был загружен в систему пользователя по ссылке на текущей веб-странице. Мне нужно знать URL этого файла. LocationURL дает мне URL-адрес страницы, на которой находится ссылка, но мне нужен URL-адрес файла/ссылки.C# с использованием SHDocVw.InternetExplorer. Как найти URL-адрес последней ссылки? Или самый последний запрос URL запроса?

EDIT: веб-приложение, с которым я пытаюсь взаимодействовать, - это SharePoint. Я не смог найти способ извлечь URL-адрес последней кликнутой ссылки (загруженный файл) из Internet Explorer, поэтому теперь я надеюсь найти способ получить эту информацию из самого SharePoint или контрейлерных имен имени ActiveX, который используется SharePoint для управления загрузкой документов MS Office. Любые эксперты SharePoint/Name ActiveX?

ответ

1

Поскольку вы не можете получить URL из истории Internet Explorer, с помощью IUrlHistoryStg :: EnumUrlshttp://msdn.microsoft.com/en-us/library/aa767720%28VS.85%29.aspx

попробовать сделать что файл ассоциация настроена один ящик, и что ваше приложение может занять путь к файлу из командной строки для запуска.

Я добавил эти ключи к моему реестру

[HKEY_CLASSES_ROOT\.sdr] 
@="sdrfile" 

[HKEY_CLASSES_ROOT\sdrfile\shell\open\command] 
@="\"D:\\Shenanigans\\MyGreatApp.exe\" \"%1\"" 

на поле Win7 и IE/Sharepoint понял. Если вы сориентируете HKCR, вы увидите, что для настройки ассоциаций файлов может возникнуть сложность, но посмотрите, работает ли это.

+0

Я думаю, что это даст мне то, что в истории «посещенных страниц» IE. Когда вы нажимаете ссылку для загрузки файла, это не отображается в истории IE. – Steve

+0

Дох! Не могли бы вы рассказать о том, как Windows/IE знает, как открыть приложение? Являются ли ваши ссылки использующими собственный протокол или IE использует тип MIME для запуска вашего приложения? Если это один из них, вы должны добавить некоторые вещи в реестр и получить URL-адрес в качестве параметра: http://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx или http : //msdn.microsoft.com/en-us/library/ms775147 (VS.85) .aspx # Registry_Locations. Если вы используете другой метод, пожалуйста, поделитесь :) – nick

+0

Это простой старый якорный тег (href = "http: // ...). IE запускает мое приложение, основанное на типе/расширении файла mime, являющемся зарегистрированным по умолчанию для этого типа расширения файла. Я проверил эти статьи MSDN, и я не уверен, что это сработает для меня. Я не контролирую приложение, которое форматирует ссылки на странице. – Steve

0
+0

Я не думаю, что это сработает для меня, так как мое приложение запускается в ответ на ссылку, которую вы нажимаете. К моменту запуска моего приложения, событие уже запущено. – Steve

+0

Какая это связь? Кроме того, ShellWindowsClass устарел, поэтому ожидайте, что он полностью перестанет работать. –

+0

Веб-страница создается SharePoint: Steve