2010-07-28 86 views

回答

1

浏览器是复杂的,当涉及到处理的寿命,甚至早在标签前的日子里,IE浏览器可能在一个进程中打开多个窗口。他们还经常使用DDE打开网址,难以追踪“正确”的过程。如果你想强制用户使用IE浏览器(为什么不使用默认浏览器?),你可以使用Windows脚本主机来自动化IE浏览器(自动化有一些问题,当涉及到受保护的IE IIRC)

我会建议只是一个简单的暂停:

start /wait http://example.com 
echo. When you are done reading xyz, press [Enter] to continue... 
pause >nul 
+0

请注意,这将导致消息推迟到浏览器退出。这可能是永远的,如果用户打开其他标签等。 – 2010-07-28 06:20:45

+0

是的,这是真的,如果这是一个问题,只需删除/等待 – Anders 2010-07-28 10:01:27

1
start /wait whatever.exe 

/wait标志将启动等待,直到程序关闭它返回之前。

至于iexplore不工作,你是对的。这是奇怪的。不过,你仍然可以用完整路径调用它:

start "" /wait "c:\Program Files\Internet Explorer\iexplore.exe" http://stackoverflow.com 

我已经更新了第二个命令行来解决漏洞的一些方式start的命令处理。有点奇怪。然而,要做到这一点,正确的方法是:

start /wait http://address.com 
+0

/等待像记事本程序的作品,但失败的IE浏览器。另外,如果我只包含IE的路径,那么它会打开一个新的命令行而不是浏览器。如果我只提供链接,它会打开一个新的浏览器,但仍然不会等待。如果我尝试完全给出的命令,它仍然不会等到我关闭浏览器。 – Manoj 2010-07-28 04:34:31

+1

开始是愚蠢的!当使用带引号的路径时,必须首先包含一组空白的引号(例如标题)Ex:start“”/ wait“c:\ random app.exe”(并且还应该用%programfiles替换c:\ Program Files %) – Anders 2010-07-28 05:24:26

+0

@Manoj它取决于。我测试了它,它对IE正常工作。就像其他人所说的那样,浏览器的生命周期很时髦,因为你可能只是在另一个进程中启动一个标签。 – 2010-07-28 06:18:23

-2
call "C:\Program Files\Internet Explorer\iexplore.exe" www.google.com 
call "C:\Program Files\Internet Explorer\iexplore.exe" www.stackoverflow.com 
call "C:\Program Files\Internet Explorer\iexplore.exe" www.codeproject.com 
echo done 
pause 

我试图在Windows 7和它完美的作品....

测试发布乌尔评论之前的代码.......

3

的Ø如果Internet Explorer未运行,则此处的方法可以工作。

如果IE已经在运行,它将无法正常工作。如果IE中的网页是脚本的起始矢量,这当然很糟糕!

我找到的解决办法是使用-noframemerging作为一个开关来IEXPLORE.EXE:

start "" /wait "%ProgramFiles%\Internet Explorer\iexplore.exe" -noframemerging "https://www.google.com" 
+0

确实,如果IE窗口已被打开,开始/等待将立即返回,除非 - noframemerging作为参数传递,告诉IE在新进程中启动,而不是在已经存在的进程中打开新的选项卡。 – 2015-05-07 10:45:38

+0

尝试过,因为它听起来不错。但是我的开始/等待不会像预期的那样等待。 (而且我检查了 - 私人IE浏览器很好地考虑了这些选项......) – Zzirconium 2015-10-12 15:21:13

相关问题