2012-10-24 44 views
2

代碼:vbscript使用wshshell.run和選項8,窗口仍然竊取焦點?

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.我不想最小化窗口似乎是其他選項,只是讓他們留在後臺。

而且我嘗試以下possibilites:

0 =作品,但不會給出指示,該過程是怎麼回事。

4 =允許我在另一個窗口中工作,例如只要在彈出控制檯框的區域之外鍵入電子郵件,但控制檯框仍然在所有內容之上呈現。

6和7 =工程,但只顯示任務欄中的最小化窗口。如果必須,我會使用選項7。

我在做什麼錯?或者這是預期的行爲?有沒有更好的方法來解決這個問題?

回答

0

我相信這是預期的行爲。當您運行wshShell.Run時,您正在告訴程序窗口初始狀態應該是。這並不意味着窗口後面的程序不能決定改變狀態。

例如,如果您通過wshShell.Run打開記事本並傳遞一個8,它將合作並保持不重點。但是,如果您打開Calc.exe,無論您告訴它使用哪種狀態(我只嘗試0-9),它總是會竊取焦點。推測composite.exe是那些不接受訂單的程序之一。

可能的(噁心)解決方法是繼續強制當前窗口關注焦點(如果在IE中完成,則需要低安全性)how to give a window focus with vbscript)。

+0

謝謝你的回覆!我可能會考慮使用ImageMagick的其他內置方法。 – bossturbo