actualizar programa via internet

18/11/2004 - 03:33 por rubenc | Informe spam
Buenas noches

Alguien sabe donde puedo encontrar informacion de como hacer las
actualizaciones de mis programas a mis clientes via internet?

ejemplo, que la entrar a cualquiera de mis programas cheque si hay
actualizacion y realizar esa actualizacion si el usuario lo desea...

Muchas Gracias

Ruben Carreon
 

Leer las respuestas

#1 Fernando Marin
18/11/2004 - 13:40 | Informe spam
Hola Ruben

usa sokets o CInternetFile



Te pongo código que te puede servir, con el uso de CInternetFile que es la
forma mas facil, yo lo he usado en un programa que entre otras cosas tenia
que descargar periodicamente archivos de un dominio.

Debes tener en cuenta que si haces debes crear cuentas ftp en tu dominio web
con permiso de descarga o acceder por el puerto 80 (HTTP).

#define TU_DOMINIO_COM_FTP_USER _T("clave")

#define TU_DOMINIO_COM_FTP_PASSWORD _T("pasword")

Descarga primero un archivo con la versión actual y lista de archivos.

Descarga despues los archivos

Ten en cuenta que para la descarga de archivos de texto (.reg, .txt, .html,
...) en la función pFtpConnection->GetFile debes usar la opción

FTP_TRANSFER_TYPE_ASCII

y para los archivos binarios (.exe, .dll,...) debes usar la función:

FTP_TRANSFER_TYPE_BINARY









#include <afxinet.h>

#define LOCAL_FILES_PATH _T("c:\\tu-programa")

#define TU_DOMINIO_COM_URL _T(www.tu-dominio.com)

#define TU_DOMINIO_COM_IP xxx.xxx.xxx.xxx

#define TU_DOMINIO_COM_FTP_USER _T("clave")

#define TU_DOMINIO_COM_FTP_PASSWORD _T("pasword")

#define TU_DOMINIO_COM_FTP_PUERTO 21

#define TU_DOMINIO_COM_DIRECTORY_WWW _T("/www")

#define TU_DOMINIO_COM_DIRECTORY_CGI _T("/www/cgi")

#define TU_DOMINIO_COM_DIRECTORY_CGI_DATOS _T("/www/cgi/datos")





CInternetSession internetSession;

CFtpConnection* pFtpConnection;

try {

pFtpConnection=internetSession.GetFtpConnection(

TU_DOMINIO_COM_URL,//"ftp.microsoft.com" LPCTSTR pstrServer,

TU_DOMINIO_COM_FTP_USER,//LPCTSTR pstrUserName = NULL,

TU_DOMINIO_COM_FTP_PASSWORD,//LPCTSTR pstrPassword = NULL,

TU_DOMINIO_COM_FTP_PUERTO,//INTERNET_PORT nPort =
INTERNET_INVALID_PORT_NUMBER,

FALSE//BOOL bPassive = FALSE

);

}

catch ( CInternetException *pEX) {

TCHAR szError[1024];

if(pEX->GetErrorMessage(szError,1024))

AfxMessageBox(szError);

else

AfxMessageBox("Error al abrir el servidor.");

pEX->Delete();

}

//Descargar ficheros texto

pFtpConnection->SetCurrentDirectory("/www");

SetCurrentDirectory(LOCAL_FILES_PATH);

pFtpConnection->GetFile(

"nombre_tu_archivo_remoto.txt",//LPCTSTR pstrRemoteFile,

"nombre_tu_archivo_local.txt",,//LPCTSTR pstrLocalFile,

FALSE,//BOOL bFailIfExists = TRUE,

FILE_ATTRIBUTE_NORMAL,//DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL,

FTP_TRANSFER_TYPE_BINARY,//DWORD dwFlags =
FTP_TRANSFER_TYPE_BINARY,FTP_TRANSFER_TYPE_ASCII

1//DWORD dwContext = 1

);

//Descargar ficheros binarios

pFtpConnection->SetCurrentDirectory("/www");

SetCurrentDirectory(LOCAL_FILES_PATH);

pFtpConnection->GetFile(

"nombre_tu_archivo_remoto.dll",//LPCTSTR pstrRemoteFile,

"nombre_tu_archivo_local.dll",,//LPCTSTR pstrLocalFile,

FALSE,//BOOL bFailIfExists = TRUE,

FILE_ATTRIBUTE_NORMAL,//DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL,

FTP_TRANSFER_TYPE_ASCII,//DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,

1//DWORD dwContext = 1

);

// Cerrar Conexión

if(pFtpConnection!=NULL) {

pFtpConnection->Close();

delete pFtpConnection;

}

internetSession.Close();



No dudes en consultarme cualquier duda

Un saludo



http://www.arrendamientos.biz


"rubenc" escribió en el mensaje
news:
Buenas noches

Alguien sabe donde puedo encontrar informacion de como hacer las
actualizaciones de mis programas a mis clientes via internet?

ejemplo, que la entrar a cualquiera de mis programas cheque si hay
actualizacion y realizar esa actualizacion si el usuario lo desea...

Muchas Gracias

Ruben Carreon

Preguntas similares