1

我正在尝试使用 WScript.Shell.Run 打开文件。该文件并不总是相同的类型,我想依靠 Windows 使用默认程序打开文件。

对于带有记事本设置的 .txt,它的效果非常好。对于带有 Internet Explorer 8 或 9(Windows XP 或 Windows 7)的 .htm(或 .html),该命令将执行,并且会发生以下两种情况之一。

  1. 如果在脚本启​​动之前没有运行其他 IE 实例,它将打开 IE 并挂起,不显示任何内容。
  2. 如果至少有 1 个其他 IE 窗口(或选项卡)打开,则脚本将执行并执行打开新选项卡或窗口的默认操作,并显示 .htm(或 .html)文件的内容。

该问题在其他浏览器中并不明显,例如,如果您将 .htm 的默认处理程序更改为 Chrome,它在两种情况下都能正常工作,始终显示内容。

测试.vbs

Set App = Wscript.CreateObject("WScript.Shell")
App.Run("C:\test.htm")
WScript.Quit

测试.htm

<html>
<head><title>Test File</title></head>
<body><p>Test File</p></body>
</html>
4

1 回答 1

2

我发现以下代码块可以代替使用 WScript.Shell.Run

Set objShell = CreateObject( "Shell.Application" )
objShell.ShellExecute "C:\Backups\Scripts\test.htm"
于 2012-10-26T21:21:07.297 回答