Buenas noches foreros, soy nuevo en el foro y tengo una idea que me gustaria me regalaran sus opiniones; tengo un negocio personal de desarrollo de software, en el me veo en la obligacion de hacer continuas actualizaciones, por lo cual tengo que estar remplazando el ejecutable cada vez que voy actualizar (es un software de escritorio). El inconveniente esta en que a una de las empresas a la que le vendi mi software es un hotel, y como bien saben, la operacion del hotel no se detiene, entonces cada vez que voy actualizar, me toca sacar al personal, copiar y pegar el nuevo ejecutable, en cada maquina y despues validar que todo puedan seguir trabajando de manera normal(en esto me llevo hasta 14 horas :-\); mi pregunta es, de que manera puedo actualizar un exe sin que el usuario me tenga que prestar su equipo y sin que tengan que cerrar la aplicacion?? He pensado en algo como que, el nuevo exe se vaya actualizando de manera progresiva en la maquina del cliente despues de haberlo dejado en una carpeta como Windows, no se, es algo que se me ocurrio. Agradezco cualquier comentario.... Saludos
Cita de: softinicio en 22 Septiembre 2010, 04:53 AM
Buenas noches foreros, soy nuevo en el foro y tengo una idea que me gustaria me regalaran sus opiniones; tengo un negocio personal de desarrollo de software, en el me veo en la obligacion de hacer continuas actualizaciones, por lo cual tengo que estar remplazando el ejecutable cada vez que voy actualizar (es un software de escritorio). El inconveniente esta en que a una de las empresas a la que le vendi mi software es un hotel, y como bien saben, la operacion del hotel no se detiene, entonces cada vez que voy actualizar, me toca sacar al personal, copiar y pegar el nuevo ejecutable, en cada maquina y despues validar que todo puedan seguir trabajando de manera normal(en esto me llevo hasta 14 horas :-\); mi pregunta es, de que manera puedo actualizar un exe sin que el usuario me tenga que prestar su equipo y sin que tengan que cerrar la aplicacion?? He pensado en algo como que, el nuevo exe se vaya actualizando de manera progresiva en la maquina del cliente despues de haberlo dejado en una carpeta como Windows, no se, es algo que se me ocurrio. Agradezco cualquier comentario.... Saludos
el otro dia lei un poco acerca de el "boton actualizar" en los EXE.
lo q hacen es algo asi, (lo q hace el boton)
revisan la web (VAS A NECESITAR UNA WEB), y el boton mira si la "FIRMA", o la "versión" es la misma, y si
NO es la misma, se descarga el exe, o directamente el boton TE LLEVA A TU WEB PARA VERIFICAR ACTUALIZACIONES.
P.D:
no creo q puedas actualizar el programa con el mismo PROGRAMA ABIERTO. (a noser q el nombre del EXE cambie, y cuando se abra mate al proceso del programa viejo y balbalbalablbalablabal)
No se, pero creo yo, un programa en ejecucion no se puede modificar...
.
PLUGINS, ADDONS...
Dulces Lunas!¡.
Cita de: Petro_Boca en 22 Septiembre 2010, 05:43 AM
Cita de: softinicio en 22 Septiembre 2010, 04:53 AM
Buenas noches foreros, soy nuevo en el foro y tengo una idea que me gustaria me regalaran sus opiniones; tengo un negocio personal de desarrollo de software, en el me veo en la obligacion de hacer continuas actualizaciones, por lo cual tengo que estar remplazando el ejecutable cada vez que voy actualizar (es un software de escritorio). El inconveniente esta en que a una de las empresas a la que le vendi mi software es un hotel, y como bien saben, la operacion del hotel no se detiene, entonces cada vez que voy actualizar, me toca sacar al personal, copiar y pegar el nuevo ejecutable, en cada maquina y despues validar que todo puedan seguir trabajando de manera normal(en esto me llevo hasta 14 horas :-\); mi pregunta es, de que manera puedo actualizar un exe sin que el usuario me tenga que prestar su equipo y sin que tengan que cerrar la aplicacion?? He pensado en algo como que, el nuevo exe se vaya actualizando de manera progresiva en la maquina del cliente despues de haberlo dejado en una carpeta como Windows, no se, es algo que se me ocurrio. Agradezco cualquier comentario.... Saludos
el otro dia lei un poco acerca de el "boton actualizar" en los EXE.
lo q hacen es algo asi, (lo q hace el boton)
revisan la web (VAS A NECESITAR UNA WEB), y el boton mira si la "FIRMA", o la "versión" es la misma, y si NO es la misma, se descarga el exe, o directamente el boton TE LLEVA A TU WEB PARA VERIFICAR ACTUALIZACIONES.
P.D:
no creo q puedas actualizar el programa con el mismo PROGRAMA ABIERTO. (a noser q el nombre del EXE cambie, y cuando se abra mate al proceso del programa viejo y balbalbalablbalablabal)
Donde encuentro esta web??
Cita de: BlackZeroX en 22 Septiembre 2010, 06:33 AM
.
PLUGINS, ADDONS...
Dulces Lunas!¡.
Gracias por sus respuestas. BlackZeroX me podrias regalar un poco mas de información, creo que por ahí va la cosa.
Saludos,
Cita de: softinicio en 22 Septiembre 2010, 13:57 PM
Cita de: Petro_Boca en 22 Septiembre 2010, 05:43 AM
Cita de: softinicio en 22 Septiembre 2010, 04:53 AM
Buenas noches foreros, soy nuevo en el foro y tengo una idea que me gustaria me regalaran sus opiniones; tengo un negocio personal de desarrollo de software, en el me veo en la obligacion de hacer continuas actualizaciones, por lo cual tengo que estar remplazando el ejecutable cada vez que voy actualizar (es un software de escritorio). El inconveniente esta en que a una de las empresas a la que le vendi mi software es un hotel, y como bien saben, la operacion del hotel no se detiene, entonces cada vez que voy actualizar, me toca sacar al personal, copiar y pegar el nuevo ejecutable, en cada maquina y despues validar que todo puedan seguir trabajando de manera normal(en esto me llevo hasta 14 horas :-\); mi pregunta es, de que manera puedo actualizar un exe sin que el usuario me tenga que prestar su equipo y sin que tengan que cerrar la aplicacion?? He pensado en algo como que, el nuevo exe se vaya actualizando de manera progresiva en la maquina del cliente despues de haberlo dejado en una carpeta como Windows, no se, es algo que se me ocurrio. Agradezco cualquier comentario.... Saludos
el otro dia lei un poco acerca de el "boton actualizar" en los EXE.
lo q hacen es algo asi, (lo q hace el boton)
revisan la web (VAS A NECESITAR UNA WEB), y el boton mira si la "FIRMA", o la "versión" es la misma, y si NO es la misma, se descarga el exe, o directamente el boton TE LLEVA A TU WEB PARA VERIFICAR ACTUALIZACIONES.
P.D:
no creo q puedas actualizar el programa con el mismo PROGRAMA ABIERTO. (a noser q el nombre del EXE cambie, y cuando se abra mate al proceso del programa viejo y balbalbalablbalablabal)
Donde encuentro esta web??
TU WEB. Por eso aclare "(VAS A NECESITAR UNA WEB)".
osea, te tenes q pagar un host... tambien ahi hosts GRATIS, pero bueno... :)
@Petro_Boca
Deja de ctar asi, se entiende el Hilo almenos que sean arretrasados mentales... aun que lo dudo creo que igual lo entenderian... verdad.
Cita de: Petro_Boca en 22 Septiembre 2010, 05:43 AM
no creo q puedas actualizar el programa con el mismo PROGRAMA ABIERTO. (a noser q el nombre del EXE cambie, y cuando se abra mate al proceso del programa viejo y balbalbalablbalablabal)
Funcion Melt...
Aun que para plugins y Addons...
Descargar Source Plugin Ejemplo
http://infrangelux.sytes.net/FileX/?file=SRC_Plugin%20Chat.rar&dir=/BlackZeroX/Proyectos/Proyecto%20InfraExplorer
Compilar la DLL con el Nombre
"PluginChat" en un form pegar esto... y ejecutar el Proyecto del Form...
Option Explicit
Private Type StructPlugins
ID As String
ObjectDLL As Object
End Type
Private CollPlugins() As StructPlugins
'
' ////////////////////////////////////////////////////////////////
' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) //
' // //
' // Web: http://InfrAngeluX.Sytes.Net/ //
' // //
' // |-> Pueden Distribuir Este Código siempre y cuando //
' // no se eliminen los créditos originales de este código //
' // No importando que sea modificado/editado o engrandecido //
' // o achicado, si es en base a este código //
' ////////////////////////////////////////////////////////////////
Enum GetFileStr
FileName = 0
extensión
Ruta
End Enum
Public Function GetPatchInfo(ByVal StrRutaFull As String, Optional ByVal Options As GetFileStr = FileName) As String
Dim Puntero(1) As Long
Dim lenStr As Long
lenStr = Len(StrRutaFull)
Puntero(0) = InStrRev(StrRutaFull, "\")
If Puntero(0) > 0 Then
Puntero(1) = InStrRev(StrRutaFull, ".")
Puntero(1) = IIf(CBool(Puntero(1)), IIf(Puntero(0) < Puntero(1), Puntero(1), lenStr + 1), lenStr + 1)
Select Case Options
Case FileName
GetPatchInfo = Mid$(StrRutaFull, Puntero(0) + 1, CLng(IIf(Puntero(1) = lenStr, lenStr - Puntero(0), Puntero(1) - Puntero(0)) - 1))
Case extensión
GetPatchInfo = Mid$(StrRutaFull, Puntero(1), Puntero(1))
Case Ruta
GetPatchInfo = Mid$(StrRutaFull, 1, Puntero(0))
Case Else
GetPatchInfo = -1
End Select
Else
GetPatchInfo = -1
End If
End Function
' // Esto es solo un ejemplo ( se Nesesita un ajuste del Array para no dejar Arrays vacios es decir Plugins/Addons entre los mismos )
Private Function ADD_PLugin(ByVal StrPath As String) As Boolean: On Error Resume Next
Dim TmpObject As Object
If Dir(StrPath, vbArchive) = "" Then Exit Function
Shell "REGSVR32.EXE /s " & Chr(34) & StrPath & Chr(34) ' // Registramos la DLL con RegSvr32.exe
' // cMain es el nombre de la clase o plugin que se va a crear...
Set TmpObject = CreateObject(GetPatchInfo(StrPath, FileName) & ".cMain") ' // Creamos el Plugin...
If TmpObject Is Nothing Then Exit Function
If (Not CollPlugins) = -1 Then
ReDim CollPlugins(0)
Else
ReDim Preserve CollPlugins(UBound(CollPlugins) + 1)
End If
With CollPlugins(UBound(CollPlugins))
Set .ObjectDLL = TmpObject
Set TmpObject = Nothing
With .ObjectDLL
.CMain = Me
MsgBox .Nombre ' // Nombre de la DLL...
MsgBox .Version ' // Nombre de la DLL...
MsgBox .ProcesoUno("Estos son solo parametros que no se toman en cuenta...", "Solo son ejemplos") ' // Nombre de la DLL...
MsgBox .ProcesoDos("Estos son solo parametros que no se toman en cuenta...", "Solo son ejemplos") ' // Nombre de la DLL...
.Inicializar ' // Si aparece un error aqui, es que hay un error en el plugin... al igual que en sus procesos... esto es muy posible!¡.
End With
ADD_PLugin = True
End With
End Function
' // este proceso se es llamado desde el Plugin Addon
Public Function Set_Configuración(ParamArray Paramertros())
Dim aa As Variant
If Not IsMissing(Paramertros) Then
For Each aa In Paramertros
If Not IsMissing(aa) Then
If IsObject(aa) Then
Debug.Print TypeName(aa)
Else
Debug.Print aa
End If
End If
Next
End If
End Function
Private Sub Form_Load()
MsgBox IIf(ADD_PLugin("c:\PluginChat.dll"), "Se agrego con Exito", "Error")
MsgBox IIf(ADD_PLugin("c:\PluginChat.dll"), "Se agrego con Exito", "Error")
MsgBox IIf(ADD_PLugin("c:\PluginChat.dll"), "Se agrego con Exito", "Error")
MsgBox IIf(ADD_PLugin("c:\PluginChat.dll"), "Se agrego con Exito", "Error")
MsgBox IIf(ADD_PLugin("c:\PluginChat.dll"), "Se agrego con Exito", "Error")
End Sub
' // Se descargan los Addon... si no se quedan en memoria xP... IDE...
Private Sub Form_Unload(Cancel As Integer)
If (Not CollPlugins) = -1 Then Exit Sub
Dim lng_Index&
For lng_Index& = LBound(CollPlugins) To UBound(CollPlugins)
Set CollPlugins(lng_Index&).ObjectDLL = Nothing
Next
End Sub
Notas:
* El Proyecto del Plugin
DEBERA LLAMARSE IGUAL QUE EL NOMBRE DE LA DLL GENERADA) * Los procesos del plugin serian publicos solo los que se deseen...
Dulces Lunas!¡.