Visual Basic para Aplicaciones - Borrar Temporales de Internet,, no no,,, BORRARLOS

Life is soft - evento anual de software empresarial
 
Vista:

Borrar Temporales de Internet,, no no,,, BORRARLOS

Publicado por Peter Ciank (2 intervenciones) el 08/04/2008 12:47:44
Estimado,
Estoy aqui para comentarles y consultarles algo que me esta volviendo loco. He hecho un prgrama que descargar un archivo de la WEB todos los dias,,,, pero el problema es quelo descarga una vez y luego utiliza un archivo de la Memeria Cache. El problemos que me genera esto es que el archivo tiene constantes actualizaciones por lo que necesito que este archivo sea forzadamente descargado de la pagina y que el temporal se elimine completamente. He probado con dos: "URLDownloadToCacheFile" o "URLDownloadToFile". El que mejor me funciono fue el primero.

Este es el Codigo que estoy utilizando:

'**************** Funciones y vAriables de Descarga Privadas *********************************
Private Declare Function URLDownloadToCacheFile Lib "urlmon" Alias "URLDownloadToCacheFileA" (ByVal lpUnkcaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwBufLength As Long, ByVal dwReserved As Long, ByVal IBindStatusCallback As Long) As Long

Dim tmp As String, fName As String, Pos As Long, fPath As String
'***************************************************************************************************

'*************************************** Funciones Publicas ************************************

' Bajo Archivo a carpeta temporal de internet
' Lo muevo a la carpeta en donde lo quiero poner
' Elimino el archivo temporal utilizado.

Function DownloadFile(URL As String) As String
Dim szFileName As String
szFileName = Space$(300)
If URLDownloadToCacheFile(0, URL, szFileName, Len(szFileName), 0, 0) = 0 Then DownloadFile = Trim(szFileName)
End Function

Public Sub DescargarLic()
On Error GoTo Err


tmp = ""

tmp = DownloadFile("http://metropublic.com.ar/software.txt")

'Extraccion de parametro x
fName = Mid$(tmp, InStrRev((tmp), ""))
Pos = InStr(1, fName, ".")
fName = Mid$(fName, 1, Pos - 4) & Mid$(fName, Pos)
fPath = "C:Program Filessoftware.txt"

'Muevo de temporal a carpeta del sistema
FileCopy tmp, fPath

'Elimino el Archivo
Kill tmp

End If


Exit Sub
Err: MsgBox "Error", vbCritical + vbOKOnly, "Error!"
End Sub



Espero me puedan ayudar con este problema..... Explico un poco. El sistema toma una configuracion de este archivo. Si este archivo no se descarga, siempre es la misma y no sirve. Se que se puede eliminar o tambien descargarlo de otra manera tal que ni aparezca por los temporales.

Saludos y muchisimas gracias por todo y a todos!

Saludos

Peter
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Borrar Temporales de Internet,, no no,,, BORRAR

Publicado por JuanC (243 intervenciones) el 08/04/2008 16:19:01
probá con

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Dim lRet As Long
lRet = URLDownloadToFile(0, "http://metropublic.com.ar/kaka", "c:kaka", 0, 0)

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar Temporales de Internet,, no no,,, BORRAR

Publicado por Pedro Ciancaglini (2 intervenciones) el 11/04/2008 14:10:57
Estimado JuanC,
Agradezco mucho el tiempo que te tomaste en postear el codigo. Te comento que no funciona. Lo habia probado a este codigo antes,,, pero igual algo de descarga en algun lugar en el caso de esta funcion que es absolutamente indetectable. Con la de Cachetofile por lo menos sabes que esta en la memo Cache. El sistema se conecta varias veces en el dia y chequea un archivo de configuracion como te habia comentado. Pero con estas dos funciones,,, siempre descarga el mismo archivo hasta que te metes en el archivo desde el Internet explorer y presionas crtl+F5 y forzas actualizacion. Ahi es donde recien cambia el archivo y se descarga el Nuevo. Por el momento, seguimos investigando....... Si se te ocurre algo y te copas,,,, Buenisimo!

Saludos desde Baires.. Peter
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar Temporales de Internet,, no no,,, BORRAR

Publicado por JuanC (243 intervenciones) el 11/04/2008 22:56:16
otra opción es usar las API de wininet o usarlas desde un control
como en este ejemplo...

Option Explicit

'//Ref.: Microsoft Internet Transfer Control 6.0
'// (MsInet.ocx)

Sub Test()
Dim INetDownload As New INet
Dim hFile%, sFileName$
Dim sURL$, bytes() As Byte
sFileName = "C:WindowsEscritorio mp.zip"
sURL = "http://www.monografias.com/trabajos24/motores/motores.zip"

'//Se puede usar icString si es texto
'//sRes = INetDownload.OpenURL(sURL, icString)

bytes() = INetDownload.OpenURL(sURL, icByteArray)
hFile = FreeFile
Open sFileName For Binary Access Write As #hFile
Put #hFile, , bytes()
Close hFile
Set INetDownload = Nothing
End Sub

... de qué zona de Bs As sos? (mandame mail)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar Temporales de Internet,, no no,,, BORRAR

Publicado por Paul Marclay (1 intervención) el 26/08/2008 07:06:41
Hola, yo tuve el mismo problema, y lo pude solucionar por suerte, usando la función DeleteUrlCacheEntry, le pasás como parámetro la url que quieras eliminar de la caché y listo, espero que te sirva.

' Para descargar un archivo de internet
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

' Para borrar un archivo de la caché de descargas del iexplore.
Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long

DeleteUrlCacheEntry URL
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
DownloadFile = (ingRetval = 0)
End Function


Saludos desde Concepción del Uruguay, Entre Ríos.
Paul.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar Temporales de Internet,, no no,,, BORRAR

Publicado por kennedy (3 intervenciones) el 03/11/2008 19:29:19
gracias a Paul por este buen aporte solo quiero modificar algo de su codigo para que funcione

Antes:

DeleteUrlCacheEntry URL
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
DownloadFile = (ingRetval = 0)
End Function

Lo correcto;

Function eliminarcache()
DeleteUrlCacheEntry (http://www.jheade.deperu.com/archivo2.txt) ' esta direccion debe 'ser la misma de la que descargaste
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
End Function

y para llamar la gunción:

Private Sub Command1_Click()
Call eliminarcache
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar Temporales de Internet,, no no,,, BORRAR

Publicado por cash (1 intervención) el 26/08/2008 23:16:54
nadie creo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar