我正在尝试使用ShellExecute在默认浏览器中打开.txt文件。
我目前正在使用
{{1}}
这会在浏览器中正确创建一个新窗口,但会尝试打开
E / path / to / file.txt(没有":")
然后找不到关联的文件。文件位置绝对正确,因为手动添加":"回到浏览器中打开文件。
答案 0 :(得分:1)
使用AssocQueryString或IQueryAssocations找出默认浏览器,然后在命令行中使用文本文件启动该浏览器。
创建一个临时.html
文件,其<meta>
标记为redirects到加载文本文件的file://
网址。然后ShellExecute使用您的临时.html
文件。由于临时文件的类型为.html
,因此应加载用户的默认浏览器。然后重定向将导致浏览器加载文本文件。
诀窍是弄清楚何时清理临时文件。 ShellExecute并不能轻松掌握已启动的流程(实际上,您启动的流程可能只是启动另一个流程),因此您无法轻松了解浏览器的浏览时间用你的临时文件完成。您可能只是跟踪您创建的临时文件,并在应用程序关闭时尝试删除它们。
答案 1 :(得分:-2)
ShellExecute将在默认文本查看器中打开一个txt文件,我认为这不是一个浏览器。要在浏览器中打开,请明确运行浏览器并将该文件作为参数。例如:
ShellExecute(
0,
L"open",
L"C:\\Program Files\\Internet Explorer\\iexplore",
L"E:\\path\\to\\file.txt",
0,
1
);