Удаление временных файлов IE !!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zafon
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 04.07.2003 (Пт) 4:48
Откуда: AKKO,Israel

Удаление временных файлов IE !!!

Сообщение zafon » 04.07.2003 (Пт) 4:54

Подскажите , как мне очистить (или запретить сохранять) файлы Интернэта в кэше браузера IE , которые открываются моим приложением ?
Т.е.
Я создаю на форме ВэбБраузер , загружаю страницу с инэта и страница с графикой и сопутствующими файлами остаётса в папке (C:\Documents and Settings\Имя_пользователя\Local Settings\Temporary Internet Files\) .

(object.Navigate URL navNoWriteToCache8) - не катит :(
Графика остаётса.
Нужно удалять или выключать кэширование через моё приложение....
Помогите!!!!
:oops:

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 04.07.2003 (Пт) 11:06

Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long

· lpszUrlSearchPattern
[in] Pointer to a string that contains the source name pattern to search for. This can be set to "cookie:" or "visited:" to enumerate the cookies and URL History entries in the cache. If this parameter is NULL, the function uses *.*.

· lpFirstCacheEntryInfo
[out] Pointer to an INTERNET_CACHE_ENTRY_INFO structure.

· lpdwFirstCacheEntryInfoBufferSize
[in, out] Pointer to an unsigned long integer variable that specifies the size of the lpFirstCacheEntryInfo buffer, in TCHARs. When the function returns, the variable contains the number of TCHARs copied to the buffer, or the required size, in bytes, needed to retrieve the cache entry.

Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long

· hEnumHandle
[in] Enumeration handle obtained from a previous call to FindFirstUrlCacheEntry.

· lpNextCacheEntryInfo
[out] Pointer to an INTERNET_CACHE_ENTRY_INFO structure that receives information about the cache entry.

· lpdwNextCacheEntryInfoBufferSize
[in, out] Pointer to an unsigned long integer variable that specifies the size of the lpNextCacheEntryInfo buffer, in TCHARs. When the function returns, the variable contains the number of TCHARs copied to the buffer, or the size of the buffer (in bytes) required to retrieve the cache entry.

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type INTERNET_CACHE_ENTRY_INFO
dwStructSize As Long
lpszSourceUrlName As Long
lpszLocalFileName As Long
CacheEntryType As Long
dwUseCount As Long
dwHitRate As Long
dwSizeLow As Long
dwSizeHigh As Long
LastModifiedTime As FILETIME
ExpireTime As FILETIME
LastAccessTime As FILETIME
LastSyncTime As FILETIME
lpHeaderInfo As Long
dwHeaderInfoSize As Long
lpszFileExtension As Long
dwReserved As Long
dwExemptDelta As Long
'szRestOfData() As Byte
End Type

zafon
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 04.07.2003 (Пт) 4:48
Откуда: AKKO,Israel

Сообщение zafon » 04.07.2003 (Пт) 14:07

Простите "Чайника" , но как использовать выше написаное:(
Что я только не делал Компилятор Ругаетса постоянно......
Код Формы....
_________________________________________________
Option Explicit

Public StartingAddress As String
Dim mbDontNavigateNow As Boolean

Private Sub Form_Load()

On Error Resume Next
Me.Show
tbToolBar.Refresh
Form_Resize

cboAddress.Move 50, lblAddress.Top + lblAddress.Height + 15

If Len(StartingAddress) > 0 Then
cboAddress.Text = StartingAddress
cboAddress.AddItem cboAddress.Text
'try to navigate to the starting address
timTimer.Enabled = True
brwWebBrowser.Navigate StartingAddress
End If
cboAddress_Click
End Sub



Private Sub brwWebBrowser_DownloadComplete()
On Error Resume Next
Me.Caption = brwWebBrowser.LocationName
FilesList.Show

End Sub

Private Sub brwWebBrowser_NavigateComplete(ByVal URL As String)

Dim i As Integer
Dim bFound As Boolean
Me.Caption = brwWebBrowser.LocationName
For i = 0 To cboAddress.ListCount - 1
If cboAddress.List(i) = brwWebBrowser.LocationURL Then
bFound = True
Exit For
End If
Next i
mbDontNavigateNow = True
If bFound Then
cboAddress.RemoveItem i
End If
cboAddress.AddItem brwWebBrowser.LocationURL, 8
cboAddress.ListIndex = 0
mbDontNavigateNow = False
End Sub

Private Sub cboAddress_Click()
If mbDontNavigateNow Then Exit Sub
timTimer.Enabled = True
brwWebBrowser.Navigate cboAddress.Text, 8
End Sub

Private Sub cboAddress_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = vbKeyReturn Then
cboAddress_Click
End If
End Sub

Private Sub Form_Resize()
cboAddress.Width = Me.ScaleWidth - 100
brwWebBrowser.Width = Me.ScaleWidth - 100
brwWebBrowser.Height = Me.ScaleHeight - (picAddress.Top + picAddress.Height) - 100
End Sub

Private Sub timTimer_Timer()
If brwWebBrowser.Busy = False Then
timTimer.Enabled = False
Me.Caption = brwWebBrowser.LocationName
If Left(Me.Caption, 7) = "http://" Then
brwWebBrowser.Visible = False
Me.Caption = ""
End If
Else
Me.Caption = "Working..."
End If

End Sub

Private Sub tbToolBar_ButtonClick(ByVal Button As Button)
On Error Resume Next

timTimer.Enabled = True

Select Case Button.Key
Case "Back"
brwWebBrowser.GoBack
Case "Forward"
brwWebBrowser.GoForward
Case "Refresh"
brwWebBrowser.Refresh
Case "Home"
brwWebBrowser.GoHome
Case "Search"
brwWebBrowser.GoSearch
Case "Stop"
timTimer.Enabled = False
brwWebBrowser.Stop
Me.Caption = brwWebBrowser.LocationName
End Select

End Sub
______________________________________________________

zafon
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 04.07.2003 (Пт) 4:48
Откуда: AKKO,Israel

Сообщение zafon » 06.07.2003 (Вс) 23:56

:cry:
Люди добрые , подскажите..........
Плиз......... :?:

zafon
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 04.07.2003 (Пт) 4:48
Откуда: AKKO,Israel

Сообщение zafon » 09.07.2003 (Ср) 22:01

:!:
КОРЧЕ ДОБРЫХ ЛЮДЕЙ НЕТ........ :cry: Спасибо ShadowCaster что доходчиво обьяснил ;)
Обойдёмся и сами , как говорится чайник тоже когда нибудь закипит....

Пример удаления временных файлом IE (Temporary Internet Files)
-------------------------------------------------------------------------------------


'This project requries a form with a listbox (List1) on it
'and a class module (MemoryBlock)
'In the form:
Option Explicit
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type INTERNET_CACHE_ENTRY_INFO
dwStructSize As Long
lpszSourceUrlName As Long
lpszLocalFileName As Long
CacheEntryType As Long
dwUseCount As Long
dwHitRate As Long
dwSizeLow As Long
dwSizeHigh As Long
LastModifiedTime As FILETIME
ExpireTime As FILETIME
LastAccessTime As FILETIME
LastSyncTime As FILETIME
lpHeaderInfo As Long
dwHeaderInfoSize As Long
lpszFileExtension As Long
dwReserved As Long
dwExemptDelta As Long
'szRestOfData() As Byte
End Type
Private Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long
Private Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long
Private Declare Sub FindCloseUrlCache Lib "wininet.dll" (ByVal hEnumHandle As Long)
Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim ICEI As INTERNET_CACHE_ENTRY_INFO, Ret As Long
Dim hEntry As Long, Msg As VbMsgBoxResult
Dim MemBlock As New MemoryBlock
'Start enumerating the visited URLs
FindFirstUrlCacheEntry vbNullString, ByVal 0&, Ret
'If Ret is larger than 0...
If Ret > 0 Then
'... allocate a buffer
MemBlock.Allocate Ret
'call FindFirstUrlCacheEntry
hEntry = FindFirstUrlCacheEntry(vbNullString, MemBlock.Handle, Ret)
'copy from the buffer to the INTERNET_CACHE_ENTRY_INFO structure
MemBlock.ReadFrom VarPtr(ICEI), LenB(ICEI)
'Add the lpszSourceUrlName string to the listbox
If ICEI.lpszSourceUrlName <> 0 Then List1.AddItem MemBlock.ExtractString(ICEI.lpszSourceUrlName, Ret)
End If
'Loop until there are no more items
Do While hEntry <> 0
'Initialize Ret
Ret = 0
'Find out the required size for the next item
FindNextUrlCacheEntry hEntry, ByVal 0&, Ret
'If we need to allocate a buffer...
If Ret > 0 Then
'... do it
MemBlock.Allocate Ret
'and retrieve the next item
FindNextUrlCacheEntry hEntry, MemBlock.Handle, Ret
'copy from the buffer to the INTERNET_CACHE_ENTRY_INFO structure
MemBlock.ReadFrom VarPtr(ICEI), LenB(ICEI)
'Add the lpszSourceUrlName string to the listbox
If ICEI.lpszSourceUrlName <> 0 Then List1.AddItem MemBlock.ExtractString(ICEI.lpszSourceUrlName, Ret)
'Else = no more items
Else
Exit Do
End If
Loop
'Close enumeration handle
FindCloseUrlCache hEntry
'Delete our memory block
Set MemBlock = Nothing
Msg = MsgBox("Do you wish to delete the Internet Explorer cache?", vbYesNo + vbDefaultButton2 + vbQuestion)
If Msg = vbYes Then
'loop trough the entries...
For Ret = 0 To List1.ListCount - 1
'...and delete them
DeleteUrlCacheEntry List1.List(Ret)
Next Ret
MsgBox "Cache deleted..."
End If
End Sub
'In the class module 'MemoryBlock':
Option Explicit
Private Const MEM_DECOMMIT = &H4000
Private Const MEM_RELEASE = &H8000
Private Const MEM_COMMIT = &H1000
Private Const MEM_RESERVE = &H2000
Private Const MEM_RESET = &H80000
Private Const MEM_TOP_DOWN = &H100000
Private Const PAGE_READONLY = &H2
Private Const PAGE_READWRITE = &H4
Private Const PAGE_EXECUTE = &H10
Private Const PAGE_EXECUTE_READ = &H20
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Const PAGE_GUARD = &H100
Private Const PAGE_NOACCESS = &H1
Private Const PAGE_NOCACHE = &H200
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal pDest As Long, ByVal pSrc As Long, ByVal ByteLen As Long)
Private Declare Function VirtualAlloc Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function VirtualLock Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long) As Long
Private Declare Function VirtualUnlock Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long) As Long
Private Declare Function IsBadReadPtr Lib "kernel32" (ByVal lp As Long, ByVal ucb As Long) As Long
Private Declare Function IsBadWritePtr Lib "kernel32" (ByVal lp As Long, ByVal ucb As Long) As Long
Private Declare Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As Long, ByVal ucchMax As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpStringDest As String, ByVal lpStringSrc As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private m_VirtualMem As Long, lLength As Long
'Returns the handle of the allocated memory
Public Property Get Handle() As Long
Handle = m_VirtualMem
End Property
'Allocates a specific amount of bytes in the Virtual Memory
Public Sub Allocate(lCount As Long)
ReleaseMemory
m_VirtualMem = VirtualAlloc(ByVal 0&, lCount, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
VirtualLock m_VirtualMem, lCount
End Sub
'Reads from the allocated memory and writes it to a specified pointer
Public Sub ReadFrom(hWritePointer As Long, lLength As Long)
If IsBadWritePtr(hWritePointer, lLength) = 0 And IsBadReadPtr(Handle, lLength) = 0 Then
CopyMemory hWritePointer, Handle, lLength
End If
End Sub
'Writes to the allocated memory and reads it from a specified pointer
Public Sub WriteTo(hReadPointer As Long, lLength As Long)
If IsBadReadPtr(hReadPointer, lLength) = 0 And IsBadWritePtr(Handle, lLength) = 0 Then
CopyMemory Handle, hReadPointer, lLength
End If
End Sub
'Extracts a string from the allocated memory
Public Function ExtractString(hStartPointer As Long, lMax As Long) As String
Dim Length As Long
If IsBadStringPtr(hStartPointer, lMax) = 0 Then
ExtractString = Space(lMax)
lstrcpy ExtractString, hStartPointer
Length = lstrlen(hStartPointer)
If Length >= 0 Then ExtractString = Left$(ExtractString, Length)
End If
End Function
'Release the allocated memory
Public Sub ReleaseMemory()
If m_VirtualMem <> 0 Then
VirtualUnlock m_VirtualMem, lLength
VirtualFree m_VirtualMem, lLength, MEM_DECOMMIT
VirtualFree m_VirtualMem, 0, MEM_RELEASE
m_VirtualMem = 0
End If
End Sub
Private Sub Class_Terminate()
ReleaseMemory
End Sub
:wink: :wink:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 19

    TopList