使用wshshell.run和选项8的vbscript,窗口仍然抢断焦点?

时间:2012-10-24 18:07:11

标签: vbscript

代码:

WshShell.Run quote & "C:\Program Files\ImageMagick-6.7.0-Q16\composite.exe" & quote & " -dissolve 65 -geometry +65+65 -gravity southeast C:\watermark.png " & quote & file & quote & " " & quote & file & quote, 8, true

引用定义为Chr(34)

每张被处理的照片会弹出一个新的控制台盒,它会窃取我正在处理的任何焦点。根据{{​​3}}我选择了选项8.我不想最小化窗口,这似乎是其他选项,只是让它们留在后台。

我也尝试了以下可能性:

0 =有效,但没有表明该过程正在进行。

4 =允许我在另一个窗口中工作,就像在弹出控制台框的区域外输入电子邮件一样,但控制台框仍然在所有窗口之上呈现。

6和7 =有效,但只显示任务栏中的最小化窗口。如果必须,我会使用选项7.

我做错了什么?或者这是预期的行为?有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

我相信这是预期的行为。当您运行wshShell.Run时,您告诉程序窗口初始状态应该是。这并不意味着窗口后面的程序无法决定改变状态。

例如,如果您通过wshShell.Run打开记事本并传递8,它将合作并保持不专心。但是如果你打开Calc.exe,无论你告诉它使用什么状态,它总是会窃取焦点(我只试过0-9)。据推测,composite.exe是那些不接受订单的程序之一。

可能的(icky)解决方法是强制当前窗口强制关注(例如,如果在IE中完成,则需要较低的安全性。how to give a window focus with vbscript)。