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は、注文を受けないプログラムの1つです。

考えられる(厄介な)回避策は、現在のウィンドウにフォーカスを強制し続けることです(たとえば、IEで実行する場合は、セキュリティを低くする必要があります。vbscriptを使用してウィンドウにフォーカスを与える方法)。

于 2012-10-24T18:34:46.027 に答える