批處理 API實(shí)現(xiàn)文件下載的代碼第1/2頁(yè)
作者:ZV(ZVROP)
目錄:
一.寫(xiě)在前面的話(huà)
二.故事的起因
三.解決-腹稿
四.解決-實(shí)戰(zhàn)
五.解決-打造
六.包裝
七.小節(jié)
八.后記
九,參考文獻(xiàn)
正文開(kāi)始:
一.寫(xiě)在前面的話(huà)
這篇文檔講述的并不是什么新鮮的技術(shù),我只是起到將他們混和起來(lái)實(shí)現(xiàn)了自己需要的功能的作用,如果你對(duì)批處理和PE格式相當(dāng)了解,那我的這篇文檔就權(quán)且當(dāng)作瀏覽溫習(xí)吧...^_^...
另外,由于我本人廢話(huà)比較多,這也是不想給雜志寫(xiě)稿子的主要原因,給我干癟癟的3000字能講出什么來(lái),不如這樣沒(méi)有限制的爽快(當(dāng)然也沒(méi)什么報(bào)酬...一_一..),所以也為了防止你在看文章的途中睡著,請(qǐng)自備小錐子一把.....
最后,這篇文檔說(shuō)是用批處理下載文件,其實(shí)它包含了很多方面的知識(shí),如果有時(shí)間,不妨一看哈,^_^,開(kāi)始買(mǎi)瓜了..
二.故事的起因
最初萌發(fā)這個(gè)想法的是不久前,在論壇(廣告一下http://www.s8s8.net)上的UNIX SHELL板塊有個(gè)會(huì)員發(fā)了一篇帖子,內(nèi)容是用BASH SHELL寫(xiě)的一個(gè)成批下載圖片的腳本(其實(shí)是H圖片...一_一..),接下來(lái)跟貼那個(gè)多啊...,有繁衍出PHP的,VBS的,C的,C#的,JAVA的,甚至交流到多線(xiàn)程,斷點(diǎn)續(xù)傳....引用花大哥的一句話(huà)"無(wú)語(yǔ),為了MM照片,大家的動(dòng)力都很足啊!"...汗~~..
在發(fā)了一份PHP和C的代碼后(感覺(jué)我動(dòng)力特足~一_一..),覺(jué)得很簡(jiǎn)單(因?yàn)橛肅或者PHP等腳本來(lái)實(shí)現(xiàn)文件的下載本來(lái)就是很基礎(chǔ)的東西)我就開(kāi)始想用微軟最原始的腳本--Batch(批處理)來(lái)嘗試實(shí)現(xiàn)(本文標(biāo)題中的"閑來(lái)無(wú)事"就是紀(jì)念此處,一_一.),這似乎有點(diǎn)不可思議,因?yàn)榕幚韼缀鯖](méi)有實(shí)現(xiàn)的支持網(wǎng)絡(luò)的功能(當(dāng)然,如果你說(shuō)你能用TELNET下載到文件的我是很佩服的..一_一..),但也不是完全沒(méi)有辦法,畢竟WINDOWS里面能用的東西這么多,沒(méi)有完不成的事情....在這種挑戰(zhàn)的勾引下,我完成了用批處理下載文件的功能....現(xiàn)在讓我一步一步回放我的思路,揭開(kāi)用批處理下載文件的奧秘...
三.解決-腹稿
如果用批處理來(lái)下載文件的話(huà),肯定會(huì)馬上想到Cscript腳本(或者是JAVA腳本),那是當(dāng)然,太多的批處理腳本實(shí)現(xiàn)一些本身并不可能實(shí)現(xiàn)的功能的時(shí)候都是采用ECHO出一個(gè)其他腳本的方法來(lái)解決.可是我們的目的就在于用批處理實(shí)現(xiàn)下載的功能,如果要用VBS來(lái)幫忙的話(huà)不如直接寫(xiě)VBS了.這個(gè)想法順即告吹....
再來(lái),記得以前有流行過(guò)一陣用RUNDLL32來(lái)加載DLL中的API,似乎和我們需要的目的沾邊,因?yàn)橄螺d文件能用的API太多了,如果RUNDLL能調(diào)用,那最好不過(guò)了.于是我打開(kāi)MSDN,找了一個(gè)API: URLDownloadToFile
URLDownloadToFile函數(shù)原型:
代碼
HRESULT URLDownloadToFile(
LPUNKNOWN pCaller,
LPCTSTR szURL,
LPCTSTR szFileName,
DWORD dwReserved,
LPBINDSTATUSCALLBACK lpfnCB
);
URLDownloadToFile函數(shù)的一些信息:
引用
Header Urlmon.h
Import library Urlmon.lib
Minimum availability Internet Explorer 3.0
Minimum operating systems Windows NT 4.0, Windows 95
相關(guān)文章
windows下定時(shí)利用bat腳本實(shí)現(xiàn)ftp上傳下載
這篇文章主要為大家詳細(xì)介紹了windows下定時(shí)利用bat腳本實(shí)現(xiàn)ftp上傳和下載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
用批處理一鍵安裝兩種擴(kuò)展名的Windows系統(tǒng)補(bǔ)丁
每次安裝好操作系統(tǒng)后花費(fèi)時(shí)間最長(zhǎng)的就是下載補(bǔ)丁安裝補(bǔ)丁了,面介紹一種針對(duì)這兩種擴(kuò)展名的系統(tǒng)補(bǔ)丁快速安裝的辦法,需要的朋友可以參考下2014-01-01
phpsh hpcli開(kāi)發(fā)的終極方案(php版本切換的 批處理)
最近用php代替vbs腳本,做些小工具的開(kāi)發(fā),了方便測(cè)試不同php版本的兼容,專(zhuān)門(mén)寫(xiě)了一個(gè) php版本切換的 批處理 phpsh.cmd,支持安裝到系統(tǒng)、卸載等功能,還支持多個(gè)php版本的任意切換需要先安裝phpStudy2020-08-08
bat 傳遞超過(guò)10個(gè)參數(shù)的情況
批處理文件中可引用的參數(shù)為%0~%9, %0是指批處理文件的本身,也可以說(shuō)是一個(gè)外部命令;%1~%9是批處理參數(shù),也稱(chēng)形參;而替換形參的實(shí)參若超過(guò)了批處理文件中所規(guī)定數(shù)值(9個(gè))且想在批處理文件中應(yīng)用這些實(shí)參的話(huà),shift命令可以幫你實(shí)現(xiàn)2014-06-06

