wscript.exe - imagem incorreta

2

Eu tenho um pequeno script que eu executo de vez em quando, nunca tive nenhum problema. Eu estou no Windows 7 e usei aqui também. Ele se baseia no WScript.Shell.

Alguns dias atrás eu corri e ele retornou a seguinte mensagem:

---------------------------
wscript.exe - Bad Image
---------------------------
C:\Windows\system32\wshom.ocx is either not designed to run on Windows
or it contains an error. Try installing the program again using the original
installation media or contact your system administrator or the software vendor
for support. 
---------------------------
OK   
---------------------------

Seguido pelo erro do WScript:

---------------------------
Windows Script Host
---------------------------
Script: C:\tools\videoconverter.vbs
Line:   9
Char:   1
Error:  Could not create object named "WScript.Shell".
Code:   800700C1
Source:     WScript.CreateObject

---------------------------
OK   
---------------------------

Eu tentei o seguinte:

  • Fiz uma inicialização limpa com todos os serviços não MS desativados. Ainda o mesmo erro.
  • Quando tentei registrar o wshom.ocx, obtive

[Window Title]
RegSvr32

[Content]
The module "C:\Windows\system32\wshom.ocx" may not compatible with the version of Windows that you're running. Check if the module is compatible with an x86 (32-bit) or x64 (64-bit) version of regsvr32.exe.

[OK]

Minha versão do windows é x86 - como eu vejo com qual versão o Wshom.ocx é compatível? Na verdade, como ele pode ser incompatível, já que era compatível em algum momento recente no passado?

Editado: adicionando o script:

infolder = "c:\tools\music_input"
outfolder = "c:\tools\music_output"

Dim objFSO
Dim ofolder
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("scripting.filesystemobject")
Dim objCurrentFolder
Set objCurrentFolder =  objFSO.getfolder(infolder)
Dim tempval   
Dim nFile
For Each file In objCurrentFolder.Files

nFile = outfolder & "\" &  file.Name & ".mp3"

If objFSO.FileExists(nFile) Then

Else
tempval = "c:\tools\ffmpeg\bin\ffmpeg.exe -i " &  chr(34)  & file & chr(34) & " " &    
chr(34) &  nFile & chr(34)

WshShell.Run tempval
WScript.Sleep 15000
End If                
Next
    
por Bryan Rasmussen 03.07.2012 / 13:16

1 resposta

0

Bryan, o que acontece se você correr:

    Dim WshShell
    Set WshShell = WScript.CreateObject("WScript.Shell")

    If Err <> 0 Then
    Wscript.Echo Err.Number & " -- " &  Err.Description
    Err.Clear
    End If

Obrigado.

    
por 04.07.2012 / 12:15