史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-03-06, 10:36 AM   #1
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9848小時 | 升級還需:148小時級別:97 | 在線時長:9848小時 | 升級還需:148小時級別:97 | 在線時長:9848小時 | 升級還需:148小時級別:97 | 在線時長:9848小時 | 升級還需:148小時級別:97 | 在線時長:9848小時 | 升級還需:148小時級別:97 | 在線時長:9848小時 | 升級還需:148小時級別:97 | 在線時長:9848小時 | 升級還需:148小時
註冊日期: 2002-12-07
文章: 13340
精華: 0
現金: 26442 金幣
資產: 3024302 金幣
預設 教學 - 直接從 Temporary Internet Files 裡挖東西 for VB

有些網頁上的東西(圖片、影音檔 ...)
網頁不讓你右鍵或FlashGet下載
這裡教你 當你網頁開完下載100%後,直接從 Temporary Internet Files 裡挖

PHP 語法:
Public Function GetCachePath(lpszUrl As String) As String
Dim dwEntrySize 
As Long
Dim lpCacheEntry 
As INTE_CACHE_ENTRY_INFO '宣告一個Temporary Internet Files資訊結構 變數
Dim tarr() As Byte
 
    Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), ByVal 0, dwEntrySize) '
呼叫獲取Temporary Internet Files 資訊函式
    
If dwEntrySize 0 Then '如果可獲得資訊 (不是空的)
        ReDim tarr(0 To dwEntrySize) '
配置一個可容納該資訊的 空間
 
        Call GetUrlCacheEntryInfo
(StrPtr(lpszUrl), tarr(0), dwEntrySize'再執行一次,利用前面的 空間 接收
 
        CopyMem ByVal lpCacheEntry, tarr(0), Len(lpCacheEntry) '
將那份Byte結構的資訊 利用記憶體 複印方式,存成 Temporary Internet Files資訊結構
        GetCachePath 
SysAllocString(lpCacheEntry.lpszLocalFileName'將其中的本機路徑取出,SysAllocString是用來"溝通" VB 與 系統 字串傳遞的API函式 (藉由記憶體位址)
        GetCachePath = StrConv(GetCachePath, vbFromUnicode) '
將UniCode轉碼成本機ANSI字碼
 
    
Else
        
'getcachepath =""
    End If
End Function 
有人或許質疑為何要用 StrConv
那是因為以下的 GetUrlCacheEntryInfo 是 for UniCode的 "W"字尾 API函式
如沒有轉換
"C:\FF\A.B"
會變成
"C:\FF\A.B"


如何使用呢?
PHP 語法:
Dim sMyURL as StringsPathFileName as String
Dim fso 
As New Scripting.FileSystemObject
'程式為了適應UniCode路徑檔名,我們使用MS Script Control 物件類別,來做檔案處理
'
,如沒有在VB IDE裡先行引用的話,需改為
'Dim fso As Object
'
Set fso CreateObject("Scripting.FileSystemObject")
 
sMyURL "http://A.B.C.D/E/ooo.xxx"
sMyURL GetCachePath(sMyURL)
If 
Len(sMyURL) > 0 Then
     sPathFileName 
"X:\ooo.xxx" '新的名稱
     fso.CopyFile sMyURL, sPathFileName '
從Temporary Internet Files 裡複製出來
End 
If 
以下是會用到的函式 與 資料結構
PHP 語法:
Public Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" Alias "GetUrlCacheEntryInfoW" _
    ByVal szUrlName 
As Long_
    ByRef lpCacheEntryInfo 
As Any_
    ByRef lpdwCacheEntryInfoBufferSize 
As Long) As Long
Public Declare Function SysAllocString Lib "oleaut32.dll" (ByVal pOlechar As Long) As String
Type FILETIME
    dwLowDateTime 
As Long
    dwHighDateTime 
As Long
End Type
Public Type INTE_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
End Type
 
Public Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" _
    Destination 
As Any_
    Source 
As Any_
    ByVal Length 
As Long

所以只要知道了該文件的WWW URL
那就能執行以上動作,從 Temporary Internet Files 裡複製出來

此帖於 2007-03-06 02:13 PM 被 mini 編輯.
mini 目前離線  
送花文章: 2012, 收花文章: 8000 篇, 收花: 26804 次
回覆時引用此帖
向 mini 送花的會員:
劍痞憶秋年 (2007-03-07)
感謝您發表一篇好文章
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 10:34 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1