2

编码:

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)

每张经过处理的照片都会弹出一个新的控制台框,它会抢走我正在处理的任何事情的焦点。根据http://technet.microsoft.com/en-us/library/ee156605.aspx我选择了选项 8。我不想最小化似乎是其他选项的窗口,只是让它们留在后台.

我还尝试了以下可能性:

0 = 有效,但不表示进程正在进行。

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

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

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

4

1 回答 1

0

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

例如,如果您通过 wshShell.Run 打开记事本并传递一个 8,它将配合并保持不专注。但是,如果您打开 Calc.exe,无论您告诉它使用何种状态,它总是会窃取焦点(我只尝试了 0-9)。大概composite.exe 是那些不会接受命令的程序之一。

一个可能的(棘手的)解决方法是继续强制您当前的窗口获得焦点(例如,如果在 IE 中完成,这需要低安全性。如何使用 vbscript 给窗口焦点)。

于 2012-10-24T18:34:46.027 回答