0

问题

我正在尝试在 Internet Explorer 中打开一个 URL。通常我会使用 Internet Explorer com 对象的 Navigate 方法。但是,这在我使用的编程语言(MapBasic)中不可用。

我的下一个方法是使用 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 运行这段代码......也许使用 Shell32.dll 的 ShellExecute?还是使用 Kernel32.dll 的 CreateProcess 会更好?

无论使用哪种方法,如果有人可以向我提供一些示例代码,说明如何使用 VB/C# 中的 Win32 API 使用 IE 打开上述链接,那将非常有帮助。我可以轻松地将代码从那里移植到 MapBasic!

(或者,如果有一种方法可以通过 shell 打开链接,我很想知道如何!)

谢谢

4

2 回答 2

0

您可以使用 System.Diagnostics 名称空间下的 Process.Start 来“执行”它。

于 2016-12-15T14:50:51.003 回答
0

正如汉斯·帕桑特回答的那样:

它有 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"

打开网址很好。


同样,也可以使用以下命令:

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"

哪个应该较少依赖系统。

于 2016-12-15T16:38:22.970 回答