I have been trying to get this script to work all day!
Here are some facts about my situation...
- I have a program named "ffmpeg.exe" in my "C:\Windows\System32\" folder.
- I DO NOT have that program in my "C:\Windows\SysWOW64\" folder.
Currently this is the script I have...
Option Explicit
Dim oFSO, oShell, sCommand
Dim sFilePath, sTempFilePath
Set oFSO = CreateObject("Scripting.FileSystemObject")
sFilePath = "C:\test\in_video.mkv"
sTempFilePath = "C:\test\out_video.mp4"
sCommand = "%comspec% /k ffmpeg -n -i """ + sFilePath + """ -c:v copy -c:a copy """ + sTempFilePath + """"
WScript.Echo sCommand
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run sCommand, 1, True
Set oShell = Nothing
Set oFSO = Nothing
If I run this script manually at a command prompt then it seems to work just fine. But if I let another app run it (for example in this case uTorrent), it runs the script as expected but when it tries to process the oShell.Run command it runs that in a 32bit environment! Then I get this...
If I try to open up a new command prompt (nothing special) i seems to default to a 64bit environment and then I can type "ffmpeg" and it shows me the help content as expected.
So for some reason I can't get the script to run applications (specifically CMD) in the 64bit environment. Anyone know how I can achieve this?
Update
Seems that my script is in fact being ran in 32bit mode! Even though the script title bar says "C:\Windows\System32\cscript.exe", which is a 64bit environment!!
I used the following script to determine that it was running in a 32bit environment...
Dim WshShell
Dim WshProcEnv
Dim system_architecture
Dim process_architecture
Set WshShell = CreateObject("WScript.Shell")
Set WshProcEnv = WshShell.Environment("Process")
process_architecture= WshProcEnv("PROCESSOR_ARCHITECTURE")
If process_architecture = "x86" Then
system_architecture= WshProcEnv("PROCESSOR_ARCHITEW6432")
If system_architecture = "" Then
system_architecture = "x86"
End if
Else
system_architecture = process_architecture
End If
WScript.Echo "Running as a " & process_architecture & " process on a " _
& system_architecture & " system."