アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAで

objWSH.Run strShellCommand, vbNormalFocus, True

というコマンドを使って
ffmpegで複数の動画ファイルに処理を行うプログラムを作りました。

コマンドプロンプトを実行した際に
毎回コマンドプロンプトウインドウの画面がアクティブになるので
テキストエディタなどで文字を打っていると
それが出た瞬間に毎回中断することになります。

コマンドプロンプトウインドウがアクティブにせずに
実行する方法があれば教えてください。

A 回答 (3件)

こんにちは。



>Shellではなく、WScript.Shellでのやり方をできれば教えてください。
VBAと質問に書かれていたので、てっきりShellで済むと思いましたが……。
結局、内容が分からないままに、WSHに作り変えました。
以下では、「vbMinimizedFocus」を使いました。
VBAなら、書き換えてやってみてください。

Dim myPath
Dim objWSH
Dim objFS
Dim strShellCommand
Const vbHide = 0
Const vbNormalFocus =1
Const vbMinimizedFocus = 2
Const vbMaximizedFocus =3
Const vbNormalNoFocus = 4
Const vbMinimizedNoFocus = 6

Set objWSH = Wscript.CreateObject("Wscript.Shell")
myPath = "C:\Temp\"
objWSH.CurrentDirectory = myPath
strShellCommand = "cmd /c ffmpeg -i sample1.avi sample1.mp4 2>&1 null"
objWSH.Run strShellCommand, vbMinimizedFocus, True
    • good
    • 0
この回答へのお礼

No1さんへの返答を見ていただきたいのですが
vbNormalNoFocus

を使いたいのですがこの方法だとうまくいきません。

なぜでしょうか?

お礼日時:2015/02/19 17:46

こんばんは。



ちょっと試しにやってみました。
質問内容が、VBAとありましたが、もしかして、WSHだったらすみません。
これなら、ストレスはないはずです。

'//
Sub Test2()
Dim myPath As String
Dim ret As Double
Dim strShellCommand '←これだけ残しました。(^^;
myPath = "C:\temp\"
ChDir myPath
strShellCommand = "ffmpeg -i sample.avi sample.mp4"
ret = Shell(strShellCommand, vbMinimizedFocus)
End Sub
'//

関係のない話ですが、wmv と mp4 を比べると、mp4の画像のほうがきれいなのです。
しかし、mp4は結構時間が掛かりました。
    • good
    • 0
この回答へのお礼

Shellではなく、WScript.Shellでのやり方をできれば教えてください。

vbNormalNoFocusでやりたいのですが
うまくいかないのですが・・・

お礼日時:2015/02/19 12:44

Run メソッドの 第2パラメータで、8 を指定してみるとか。


http://www.atmarkit.co.jp/ait/articles/0407/08/n …
で半分くらいスクロールした辺りに説明があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。


Run メソッドの 第2パラメータで、8 を指定してみたのですが
やはりシェルが実行されるたびにアクティブになるのですが・・・

http://www.happy2-island.com/vbs/cafe02/capter00 …


のページを参考にvbNormalNoFocusも試してみましたが
やはりアクティブになります。
なぜでしょうか?

vbMinimizedNoFocusを使うとうまくいくのですが
画面がタスクバーに隠れてしまうため、
実行状況を確認したいときに使うことができません。

どうすれば良いでしょうか?

お礼日時:2015/02/19 12:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!