2016-12-15 6 views
0

Проблема

Я пытаюсь открыть URL-адрес в Internet Explorer. Регулярно я бы использовал метод Navigate объекта com Internet Explorer. Однако это не доступно на языке программирования, который я использую (MapBasic).Открытие URL-адреса в проводнике Windows без COM-объекта

Мой следующий метод заключается в использовании функции Shell для выполнения команды в командной строке. Например:

explorer "http://yahoo.com" 

Переместиться на http://www.yahoo.com. Однако, когда дело доходит до более длинных ссылок, например,

https://www.google.co.uk/imgres?imgurl=http%3A%2F%2Fclv.h-cdn.co%2Fassets%2F15%2F22%2F768x518%2Fgallery-1432664914-strawberry-facts1.jpg&imgrefurl=http%3A%2F%2Fwww.countryliving.com%2Ffood-drinks%2Fa35552%2Ffacts-about-strawberries%2F&docid=kWdFoElV3zVDpM&tbnid=2gR8XfYaBJZV1M%3A&vet=1&w=768&h=518&hl=en&bih=813&biw=1461&q=strawberries&ved=0ahUKEwiV--LfsPbQAhWaHsAKHUfaC2EQMwg0KAMwAw&iact=mrc&uact=8 

Командная строка фактически переходит к:

https://www.google.co.uk/imgres?imgurl=http%3A%2F%2Fclv.h-cdn.co%2Fassets%2F15%2F22%2F768x518%2Fgallery-1432664914-strawberry-facts1.jpg&imgrefurl=http%3A%2F%2Fwww.countryliving.com%2Ffood-drinks%2Fa35552%2Ffacts-about-strawberries%2F&docid=kWdFoElV3zVDpM&tbn 

, которая является значительно более короткий URL.

Чтобы решить эту проблему, я изучаю использование Win32API, но я не могу на всю жизнь понять, как я могу запустить этот код с помощью Win32API ... Возможно, используя ShellExecute от Shell32.dll? Или было бы лучше использовать CreateProcess Kernel32.dll?

Какое бы ни было использовано, было бы очень полезно, если бы кто-то мог предоставить мне примерный код того, как открыть указанную выше ссылку с IE, используя API-интерфейсы Win32 в VB/C#. Я могу легко перенести код в MapBasic оттуда!

(В качестве альтернативы, если есть способ, чтобы открыть ссылку через оболочку, я хотел бы знать, как!)

Благодаря

+0

Длина: 259 символов. Магический номер. Не используйте Explorer.exe, используйте браузер, например iexplore.exe –

ответ

0

Вы можете просто «выполнить» его с помощью Process.Start, которая находится под системой .Diagnostics name space.

+0

К сожалению, у меня нет доступа к .NET. – Sancarn

0

Hans Passant Как ответил:

Длинна 259 символов. Магический номер. Не используйте Explorer.exe, используйте браузер , например iexplore.exe

Это именно то решение, в котором я нуждался. Вместо этого используйте iexplorer.exe:

"C:\Program Files\Internet Explorer\iexplore.exe" "https://www.google.co.uk/imgres?imgurl=http%3A%2F%2Fclv.h-cdn.co%2Fassets%2F15%2F22%2F768x518%2Fgallery-1432664914-strawberry-facts1.jpg&imgrefurl=http%3A%2F%2Fwww.countryliving.com%2Ffood-drinks%2Fa35552%2Ffacts-about-strawberries%2F&docid=kWdFoElV3zVDpM&tbnid=2gR8XfYaBJZV1M%3A&vet=1&w=768&h=518&hl=en&bih=813&biw=1461&q=strawberries&ved=0ahUKEwiV--LfsPbQAhWaHsAKHUfaC2EQMwg0KAMwAw&iact=mrc&uact=8" 

Открывает URL-адрес в порядке.


Аналогично можно также использовать следующую команду:

start iexplore "https://www.google.co.uk/imgres?imgurl=http%3A%2F%2Fclv.h-cdn.co%2Fassets%2F15%2F22%2F768x518%2Fgallery-1432664914-strawberry-facts1.jpg&imgrefurl=http%3A%2F%2Fwww.countryliving.com%2Ffood-drinks%2Fa35552%2Ffacts-about-strawberries%2F&docid=kWdFoElV3zVDpM&tbnid=2gR8XfYaBJZV1M%3A&vet=1&w=768&h=518&hl=en&bih=813&biw=1461&q=strawberries&ved=0ahUKEwiV--LfsPbQAhWaHsAKHUfaC2EQMwg0KAMwAw&iact=mrc&uact=8" 

Какой должна быть меньше, зависит от системы.