问题
我正在尝试在 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 打开链接,我很想知道如何!)
谢谢