[C con Clase] Ejecutar comando TFTP desde c++

Salvador Pozo salvador en conclase.net
Jue Ene 10 19:24:59 CET 2013


Hola:

Probablemente sea suficiente con ejecutar la tarea de forma externa, tal como lo intentas, y más abajo intentaré indicar por qué no funciona en tu caso.

Sin embargo, te recomiendo, si estás dispuesto, que uses las librerías del API de Windows para acceder directamente al protocolo FTP desde tu programa. Yo he usado este método para transferir ficheros desde un ordenador con OpenVMS a otro con Windows en una red local, y creo que podrás comprobar que es mucho más flexible.

Para poder acceder a las funciones FTP desde un programa Windows debes incluir el fichero de cabecera <wininet.h> y enlazar con la librería estática "wininet". Esto último se puede hacer añadiendola a las librerías de enlace en las opciones de proyecto.

Hay un artículo sobre este tema en la página de conclase.net:

http://articulos.conclase.net/?tema=navarro&art=wininetftp&pag=000

Y si necesitas aclarar cualquier duda al respecto, no tienes más que preguntar en esta lista de correo. :)

En cuanto a tu problema concreto, probablemente el problema sea que el sistema no encuentra el programa en las rutas por defecto. Tendrías que añadir la ruta a la variable de sistema PATH, o indicar el camino completo.

También puedes usar la función del API de Windows "ExecProgram":

Syntax

ExecProgram("command-line", display-state)

Donde display-state puede valer 0, 1 ó 2, dependiendo de si quieres que se ejecute en una ventana normal, minimizada o maximizada, respectivamente.

También se puede usar "WinExec":

UINT WinExec(
    LPCSTR lpCmdLine,	// address of command line 
    UINT uCmdShow 	// window style for new application 
   );

En este caso, el segundo parámetro admite más valores:
SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE... 
Los mismos valores que ShowWindow:
http://winapi.conclase.net/curso/?winfun=ShowWindow#inicio

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase