Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Soir

#21
Cita de: Fitoschido en 14 Agosto 2010, 18:25 PM
Código (vb) [Seleccionar]
On Error GoTo RutinaError

...

RutinaError:


Y bajo RutinaError pones:

Si Carpeta "\Data" no existe Entonces
MsgBox "No se encontró la carpeta de datos del juego" (o lo que quieras.

Te lo pongo como pseudocódigo porque no sé si lo de FileExists existe en VB6, y no me acuerdo ahorita :D

Mira se lo inserte aqui:

Private Sub cmdDownload_Click()
Screen.MousePointer = vbHourglass

ProgressBar1.Value = 0

ProgressBar1.Visible = True 'Mostrar barra de progreso

'Lista de Archivos de Descarga
DownloadFile "http://dynamite.es/updates/WoD.exe", App.Path & "\WoD.exe"
DownloadFile "http://dynamite.es/updates/Patch-a.MPQ", App.Path & "\Data\Patch-a.MPQ"

[b]On Error GoTo RutinaError
RutinaError:
MsgBox "No se encontró la carpeta de datos del juego"[/b]


Screen.MousePointer = vbDefault
MsgBox "Actualización Completada"

ProgressBar1.Visible = False

End Sub

Private Sub Form_Load()

Me.Caption = "Dynamite Updater - V1.0"

ProgressBar1.Visible = True

End Sub

Sub DownloadProgress(intPercent As String)
    ProgressBar1.Value = intPercent ' Actualizar Proceso Mientras se Descarga
End Sub


'Funcion de Descarga de Archivo (strURL As String, strDestination As String) As Boolean
Public Sub DownloadFile(strURL As String, strDestination As String) 'As Boolean
Const CHUNK_SIZE As Long = 1024
Dim intFile As Integer
Dim lngBytesReceived As Long
Dim lngFileLength As Long
Dim strHeader As String
Dim b() As Byte
Dim i As Integer

DoEvents
   
With Inet1
   
.URL = strURL
.Execute , "GET", , "Range: bytes=" & CStr(lngBytesReceived) & "-" & vbCrLf
       
While .StillExecuting
DoEvents
Wend

strHeader = .GetHeader
End With
   
   
strHeader = Inet1.GetHeader("Content-Length")
lngFileLength = Val(strHeader)

DoEvents
   
lngBytesReceived = 0

intFile = FreeFile()

Open strDestination For Binary Access Write As #intFile

Do
b = Inet1.GetChunk(CHUNK_SIZE, icByteArray)
Put #intFile, , b
lngBytesReceived = lngBytesReceived + UBound(b, 1) + 1

DownloadProgress (Round((lngBytesReceived / lngFileLength) * 100))
DoEvents
Loop While UBound(b, 1) > 0

Close #intFile

End Sub


Y sale, cuando descarga los archivos, salen los 2 mensajes...

Probaré a cambiarlo de lugar...

Gracias ^^
#22
Hola!...


Bueno, tengo una duda, y msdn, no me ayuda mucho en esto...

Tengo el siguiente código.


Private Sub cmdDownload_Click()
Screen.MousePointer = vbHourglass

ProgressBar1.Value = 0

ProgressBar1.Visible = True 'Mostrar barra de progreso

'Lista de Archivos de Descarga
DownloadFile "http://dynamite.es/updates/WoD.exe", App.Path & "\WoD.exe"
DownloadFile "http://dynamite.es/updates/Patch-a.MPQ", App.Path & "\Data\Patch-a.MPQ"

Screen.MousePointer = vbDefault
MsgBox "Actualización Completada"

ProgressBar1.Visible = False

End Sub

Private Sub Form_Load()

Me.Caption = "Dynamite Updater - V1.0"

ProgressBar1.Visible = True

End Sub

Sub DownloadProgress(intPercent As String)
   ProgressBar1.Value = intPercent ' Actualizar Proceso Mientras se Descarga
End Sub


'Funcion de Descarga de Archivo (strURL As String, strDestination As String) As Boolean
Public Sub DownloadFile(strURL As String, strDestination As String) 'As Boolean
Const CHUNK_SIZE As Long = 1024
Dim intFile As Integer
Dim lngBytesReceived As Long
Dim lngFileLength As Long
Dim strHeader As String
Dim b() As Byte
Dim i As Integer

DoEvents
   
With Inet1
   
.URL = strURL
.Execute , "GET", , "Range: bytes=" & CStr(lngBytesReceived) & "-" & vbCrLf
       
While .StillExecuting
DoEvents
Wend

strHeader = .GetHeader
End With
   
   
strHeader = Inet1.GetHeader("Content-Length")
lngFileLength = Val(strHeader)

DoEvents
   
lngBytesReceived = 0

intFile = FreeFile()

Open strDestination For Binary Access Write As #intFile

Do
b = Inet1.GetChunk(CHUNK_SIZE, icByteArray)
Put #intFile, , b
lngBytesReceived = lngBytesReceived + UBound(b, 1) + 1

DownloadProgress (Round((lngBytesReceived / lngFileLength) * 100))
DoEvents
Loop While UBound(b, 1) > 0

Close #intFile

End Sub


Este código lo uso para actualizar unos archivos de un juego... Que son imprescindibles para mi servidor.

La duda, es, el programa descarga los archivos y uno de esos archivos, lo inserta en la carpeta \Data\

Entonces, quería saber, como insertarle un mensaje para que cuando el programa no encuentre la carpeta \Data\ salga X mensaje.

Ahora, cuando no la encuentra sale este error:



Espero la ayuda... Muchas gracias :D
#23
Programación C/C++ / Updater
3 Julio 2010, 21:41 PM
Hola de nuevo a todos!

Bueno, pues que, tengo un problema.

Tengo un Servidor de un Juego...

Este juego, se les puede añadir parches que te quieras, y para mi servidor, queria saber, si con el Loader.exe que tengo echo con el Visual C++ 2008. Puedo añadir algo, para que, el programa compruebe si hay un archivo nuevo, osea. Algo para mantener actualizados mis .MPQ (Extension del Archivo)

Por ejemplo. Que cuando yo modifique el patch-a.MPQ, lo suba a mi dedicado, y el loader lo descargue y lo guarde en Data/patch-a.MPQ el caso es, como hacer que el loader mio, descargue ese archivo desde una URL que siempre será la misma...

Saludos!
#24
No se si me entendisteis mal...

No quier renombrar este archivo:
Por ejemplo:
El Lanzador de un Juego, llamado por ejemplo: WoW.exe y su titulo es World Of Warcraft.
Según la funcion de MSDN sería para cambiarle el nombre a WoW.exe yo quiero cambiarle el nombre a World Of Warcraft, osea el titulo de la aplicacion...
#25
Hola...

Soy nuevo por aqui, y no se muy bien como va esto, ni conozco a nadie... Pero bueno.

Mi duda es, quiero tener una dll que renombra una aplicación, es decir.

Que un programa con nombre, por ejemplo, "Real Madrid" cuando se le de a un boton, "llame" a una .dll y el programa se renombre a "Barcelona".

Se podría hacer? Como?

Espero respuesta, gracias.