Verifcar un exe

Verifcar un exe

Postby jponce » Sat Nov 14, 2009 4:55 pm

Hola a todos.

La desventaja de programar en escritorio es que muchas veces necesitas que todas las computadoras se actualicen al mismo tiempo, es decir con una pagina web hago el cambio y para toda la corporacion esta hecho pero con una aplicacion de escritorio no.

Necesito hacer un programa que haga lo siguiente, que en una unidad compartida este la modificacion del sistema. y que si es diferente a la que tiene en el lado del cliente la copie hacia donde esta el otro computador.

Alguien me puede ayudar decir como hacer esto sin un archivo .bat

Atentamente
Julio Ponce
jponce
 
Posts: 194
Joined: Fri Apr 18, 2008 4:21 pm
Location: Guatemala

Re: Verifcar un exe

Postby pablovidal » Sat Nov 14, 2009 5:00 pm

Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
pablovidal
 
Posts: 401
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana

Re: Verifcar un exe

Postby Marcelo Via Giglio » Sat Nov 14, 2009 5:04 pm

Julio,

jponce wrote:
Necesito hacer un programa que haga lo siguiente, que en una unidad compartida este la modificacion del sistema. y que si es diferente a la que tiene en el lado del cliente la copie hacia donde esta el otro computador.



Me pregunto si tienes la posibilidad de tener una unidad compartida, por que la necesidad de actualizar la aplicacion, ya que puedes ejecutar una unica apliacion, es decir un unico .exe desde la unidad compartida, donde trabajo lo hemos hecho asi durante años sin el menor problema, compartiendo la apliacacion desde un servidor Linux con SAMBA.

Pero tambien hay alguna solucion expuesta en el foro para la forma que tu quieres orientar tu problema, creo que Biel propuso algo

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Verifcar un exe

Postby jponce » Sat Nov 14, 2009 5:28 pm

No lo puedo hacer asi desde una unidad compartida, ya que cada vez que se haga un cambio tengo que pedir que las personas se salgan del sistema y como hay usuario que por mas que uno les dice que se salgan del sistema no lo hacen, entonces cada usuario tiene el ejecutable en su computadora, la forma de bielsy no me sirve por que si no estoy mal es a travez de ftp.

Yo lo unico que necesito es un copy de un lado a otro si la aplicacion obtubo cambios, en clipper existia una forma de hacerlo, que se comprobaba si la fecha y la hora del ejecutable habian cambiado, y si eran iguales no hacia un copy y si eran distintas hacia un copy de una carpeta a otra.

Atentamente
Julio Ponce
jponce
 
Posts: 194
Joined: Fri Apr 18, 2008 4:21 pm
Location: Guatemala

Re: Verifcar un exe

Postby pablovidal » Sat Nov 14, 2009 5:47 pm

Oye, lo mas facil es montar un servidor FTP... Hay muchos programas Freeware que lo hacen...
Inclusi el mismo Windows XP

http://www.diginota.com/trucos-y-tutoriales/como-configurar-el-server-ftp-en-windows-xp.html
Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
pablovidal
 
Posts: 401
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana

Re: Verifcar un exe

Postby Marcelo Via Giglio » Sat Nov 14, 2009 6:21 pm

Pablo,

una idea sencilla, ingresas al exe compartido a traves de una unidad compartida, remota o lo que sea, al ejecutar el sistema (al hacer login o como sea), guardas la fecha y la hora del ejecutable, luego antes de cada operacion, verificas si el exe cambio de fecha, en ese caso obligas a terminar la aplicacion para volverla a ejecutar. Lo mismo podrias hacer por medio de una tabla de la DB donde pongas la version del sistema y verificas si esta version ha cambiado desde cuando ejecutaste la aplicacion, y asi, creo que podras encontrar alternativas.

Creo que una idea parecida podras aplicar si deas tener copias locales y lo que requieras hacer sea copiar la nueva version desde un server

solo una idea

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Verifcar un exe

Postby rolando » Sat Nov 14, 2009 11:03 pm

Julio,

Se me ocurre que podrías utilizar las funciones filedate() y filetime() incluyendolas al inicio de un EXE cuya única utilidad sería comprobar si existe una versión nueva mediante estas dos funciones que mencioné antes.

En caso de existir, este EXE se ocuparía de copiarla sobreescribiendo la anterior y, en caso de no existir, ejecutaría la versión que venías usando.

Solo una idea. Espero te sirva.

Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Verifcar un exe

Postby Ramon Paredes » Sun Nov 15, 2009 4:08 pm

Julio,

En mi caso tengo un solo exe para 20 usuarios, si uno de ellos requiere algun cambio o alguna parte de la aplicacion requiere un cambio unicamente renombro el exe MIPROG.EXE lo renombro MIPROGXX.EXE y copio el nuevo exe y listo, el usuario que requeria el cambio y solamente el refresca su aplicacion y listo, nadie interrumpe su trabajo y cada vez que un usuario cierre y abra su aplicacion tomara el actual exe, al menos a mi me ha servido de mucho,

saludes desde Managua, Nicaragua

Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
User avatar
Ramon Paredes
 
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Re: Verifcar un exe

Postby TecniSoftware » Mon Nov 16, 2009 1:15 pm

Arme el ejemplo para actualización automática que mencionaron aqui http://bielsys.blogspot.com/2009/04/act ... ca-de.html y me funcionó perfectamente.
El único problema es que yo personalmente, necesito re-arrancar mi aplicación pero enviándole un parámetro "/SERVER" y como no tengo muchos conocimientos de c, no se como hacerlo:

Este es el código para actver.c que es parte del truco ( borra el ejecutable en uso y renombra el archivo descargado de internet ) y lo unique que atiné, fue a sacar el winexec ya que si no le envio el parametro /SERVER a mi no me sirve.
Como habria que hacer para poder enviarle ese parametro o cualquier otro mediante argv ?
Tendria que ejecutar argv[1] /SERVER

int main( int argc, char *argv[])
{
// printf( argv[1] );
Sleep(1500); // Estaba en 700 pero lo agrande
DeleteFile( argv[1] );
rename( "tmp.exe",argv[1] );
// WinExec( argv[1], 1 ) ;
return EXIT_SUCCESS;
}

Muchas gracias!
Alejandro Cebolido
Buenos Aires, Argentina
User avatar
TecniSoftware
 
Posts: 235
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Re: Verifcar un exe

Postby Patricio Avalos Aguirre » Mon Nov 16, 2009 1:21 pm

Hola

Lo que yo hago es crear un archivo INI en el servidor con el campo version luego comparo con el del
usuario, si son diferentes actualizo

este es el archivo ini del servidor
Code: Select all  Expand view
_______________________________________________________________________________

 Sistema Administrativo                                    Version 1.0.0
                                    (c) copyright: Patricio Avalos Aguirre, 2009
                                             patricio_avalos_aguirre@hotmail.com
 _______________________________________________________________________________

[Version]
numero=1.0.1

[Revision]

;version 1.0,1 8 SEP 2007
;Se realiza la conexion por Servidor Ads
_______________________________________________________________________________
 

y asi sucesivamente..

y asi tienes un historial de cambios de tu sistema

Code: Select all  Expand view

static function VerUpDate()
    local oIniUpdate, oIniLocal, cVersion, cVersion2, lReturn := .f.

    if !file( ViewUsu():cPathUpd + "\Update.exe" ) .or. !file( ViewUsu():cPathUpd + "\Wcta.exe" )
        MsgInfo( "Hay una actualización pendiente del sistema, que podria afectar completamente el desarrollo de este"+CRLF + CRLF +;
                "favor comuniquese con XXXXX" + CRLF + ;
                CRLF + CRLF+;
                "Error:Falta archido update.exe, posible causa no esta autentificado en el servidor", "Usuario" )
        return( lReturn )
    endif

    INI oIniUpdate FILE ( ViewUsu():cPathUpd + "\update.ini" )
    GET cVersion SECTION "Version" ENTRY "numero" OF oIniUpdate DEFAULT "1.0.0"

    INI oIniLocal FILE (ViewUsu():cPathLocal + "\wInvent.ini")

    GET cVersion2 SECTION "Version" ENTRY "Version" OF oIniLocal DEFAULT "1.0.0"

    if PadR( cVersion2,6 ) <> PadR( cVersion,6 )
        WinExec( ViewUsu():cPathUpd+"\Update.exe "+cVersion )
        lReturn := .t.
    endif

return( lReturn )
//------------------------------------------------------------------------------------------------
 


es archivo UPDATE.EXE esta en el servidor es el encargado de copiar la aplicacion y luego modificar el archivo ini del cliente

espero que te sea de utilidad
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: Verifcar un exe

Postby acuellar » Tue Nov 17, 2009 12:50 pm

Julio

Me parece que es esto lo que necesitas
Code: Select all  Expand view

   If File("SISTEMAx.EXE")
        DELETE FILE SISTEMAx.EXE //Elimina el renombrado por si ya existe
    Endif

   ExeOn:="SISTEMA.EXE" //Nombre del sistema
   ExeNew:="\\SERVIDOR\INSTALA\SISTEMA.EXE" //Donde se encuentra el nuevo
   HoraNew:=FILETIME(ExeNew); HoraOn:=FILETIME(ExeOn)
   FecExeOn:=dToS(FILEDATE(ExeOn))+Left(HoraOn,2)+Subs(HoraOn,4,2)+Right(HoraOn,2)
   FecExeNew:=dToS(FILEDATE(ExeNew))+Left(HoraNew,2)+Subs(HoraNew,4,2)+Right(HoraNew,2)
   IF FecExeNew > FecExeOn
     RENAME SISTEMA.EXE TO SISTEMAx.EXE
     COPY FILE \\SERVIDOR\INSTALA\SISTEMA.EXE To SISTEMA.EXE
     WinExec(ExeOn)
     Quit
     Endif
 


Espero te sirva

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Verifcar un exe

Postby jponce » Tue Nov 17, 2009 3:12 pm

Adhemar

Gracias

Es Correcto algo asi es como lo necesito voy a probar muchas gracias.


Atentamente
Julio Ponce
jponce
 
Posts: 194
Joined: Fri Apr 18, 2008 4:21 pm
Location: Guatemala


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 33 guests