Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

INCREIBLE: Ejecusión de un programa externo, ayuda

0 views
Skip to first unread message

Juan Marugán

unread,
Jan 26, 2000, 3:00:00 AM1/26/00
to

Hola a todos:

Esctribo esto en las News porque me pasa algo muy curioso que
quiero que todos conozcais. En una aplicación, tengo un procedimiento
que se encaga de ejecutar un programa que se le paso como parámetro y
devuelve TRUE si se pudo ejecutar o FALSE si no se pudo ejecutar por
la razón que sea (que no exista el programa, que no sea ejecutable,
etc). El tema es que me ejecuta correctamente cualquier programa que
le paso, excepto la siguiente cadena:

"C:\Archivos de programa\Accesorios\BACKUP\Msbackup.exe"

que coincide con el software que Microsoft incluye en Windows 98 para
hacer copias de seguridad. Al intentar ejecutar el programa, me da un
error en tiempo de ejecución: Error 53: No se ha encontrado el
archivo. Lo mejor de todo es que si me voy a la ventana de depuración
(CTRL-G) y escribo ? Dir( "C:\Archivos de
programa\Accesorios\BACKUP\Msbackup.exe"), la respuesta es
'Msbackup.exe', lo que me indica que archivo si existe. Además,
siguiendo la ejecución con F8, compruebo que el error lo genera la
función Shell() no Dir().

La idea de exponer esto en las news es para que si alguien
tiene 5 minutos, lo experimente, porque yo lo he probado en varios
equipos y debo estar muy ocecado, porque no encuentro solución y en
todos me hace lo mismo, previa confirmación de que el archivo existe
antes de ejecutar el programa.


Saludos y gracias a todos de antemano.

El código del procedimiento es el siguiente:


Function EjecutarPrograma(Camino As String) As Boolean

Dim a As Double

On Error GoTo errhandler

EjecutarPrograma = False

If Dir(Camino) <> "" Then
a = Shell(Camino, vbNormalFocus)
EjecutarPrograma = True
End If

Exit Function

errhandler:

End Function


Pedro Maicas

unread,
Jan 27, 2000, 3:00:00 AM1/27/00
to
On Wed, 26 Jan 2000 12:38:25 GMT, j...@jet.es (Juan Marugán) wrote:

> "C:\Archivos de programa\Accesorios\BACKUP\Msbackup.exe"

Seguramente se debe a los espacios en blanco, ya que se
interpreta que el programa se llama "c:\Archivos" y el resto
son parámetros. Prueba a añadir unas comillas al comienzo y
al final o bien usa el nombre de path corto.


Saludos :-) -Pedro-

pma...@jet.es
http://web.jet.es/pmaicas/

Juan Marugán

unread,
Jan 29, 2000, 3:00:00 AM1/29/00
to
On Thu, 27 Jan 2000 10:26:05 GMT, pma...@jet.es (Pedro Maicas) wrote:


Ya lo pensé, pero si le paso "C:\Archivos de programa\Pain
Shop Pro 6\psp.exe" a la misma función si que funciona.

Saludos

Pedro Maicas

unread,
Jan 30, 2000, 3:00:00 AM1/30/00
to
On Sat, 29 Jan 2000 13:19:41 GMT, j...@jet.es (Juan Marugán) wrote:

> Ya lo pensé, pero si le paso "C:\Archivos de programa\Pain
>Shop Pro 6\psp.exe" a la misma función si que funciona.

Tienes razón, acabo de comprobar esto:

PathName = "C:\Archivos de programa\Accesorios\MSPaint.exe"
Shell PathName

Y funciona bien.

Mira a ver si puedes ejecutar el msbackup.exe manualmente,
no vaya a ser que le falte alguna dll o algo así.

Haz que alguien te repase el código, a veces uno se ciega y
no ve el error aunque sea evidente (igual tienes mal escrita
la ruta y puedes estar dos horas mirandola sin ver el error).

Cambia el msbackup de directorio, solo para probar, cambiale
el nombre , coloca el mspaint en el directorio del backup y
pruebalo, (esto ya es paranoia, pero...).

Juan Marugán

unread,
Jan 30, 2000, 3:00:00 AM1/30/00
to
On Sun, 30 Jan 2000 10:01:56 GMT, pma...@jet.es (Pedro Maicas) wrote:


El MSBackup ya lo he ejecutado a parte y funciona, de todas
formas el error en tiempo de ejecución es que no encuentra el archivo,
pero bueno, el resto de opciones que planteas las probaré. De todos
modos... ¿Es rarísimo no?.

Saludos

0 new messages