Aquí dejo este pequeño post con contenido importante sobre este error.

En los usuarios tengo un acceso directo en el escritorio que apunta a un vbs en el que se realizan una serie de tareas y en algún que otro ordenador me daba el error del titulo.

En concreto en la función que llamaba de la siguiente manera.

If IsRunning("wscript.exe") Then
WScript.Echo "La aplicación ya esta ejecutándose, espere a que termine."
WScript.Quit
End If

El motivo de la función es el destinado a esos usuarios que se impacientan y pulsan 50 veces por segundo el icono de la aplicación porque no ven que ésta “arranque”. No son capaces de pensar que por detrás puede estar haciendo otras funciones antes de mostrar el formulario de Login a la aplicación.

La función:

Function IsRunning(strName)
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set colProcesses = objWMI.ExecQuery("Select * From Win32_Process " & _
"Where Caption = '" & strName & "'")
If colProcesses.Count > 1 Then 'cuento que exista mas de un proceso wscript ejecutandose
IsRunning = True
Else
IsRunning = False
End If
End Function

El error era marcado en la primera linea de la función.

Pues después de probar y probar resulta que según parece este error es causado por el incorrecto registro de algunas dlls implicadas.

Para solucionarlo solo hay que abrir una ventana de comandos de msdos e irse hasta %windir%\System32\Wbem y cuando estemos con el prompt allí escribimos:

for %i in (*.dll) do regsvr32 -s %i

Esto registra de nuevo en modo silencioso todas las dlls de ese directorio y acaba con el problema.


Posts anterior y posterior:


Posts Relacionados: