*!* Cookies 管理(删除/获取)
*!* 用法:首先打开你的浏览器中,输入:
https://bbs.bccn.net/
*!* 如果需要用户名和密码的,请输入:用户名:xxxxxxx 和 密码:yyyyyyy
*!* 等正常后,运行本代码,就可以过得你的 Cookie 的 Cook.txt 文件
*!* InternetGetCookie() 只读取 Cookie 目录下生成的 Cookie
Clear
Do Declare
Local lcUrl, lcCookieName, lcCookieData, lnLen
lcUrl = "
https://bbs.bccn.net/" && 网址
lcCookieName = "user settings" && 定义 Cookie 名
lcCookieData = "regular,54,126,-1,0"
* = AddPersistentCookie(lcUrl, lcCookieName,;
lcCookieData, date()+2)
? "Cookie:", ReadCookie(lcUrl, lcCookieName) && 读取 Cookie
* = DeleteCookie(lcUrl, lcCookieName) && 删除 Cookie
* =Strtofile(ReadCookie(lcUrl, lcCookieName), "Cook.txt") && 保存 Cookie 文件
Function ReadCookie(lcUrl, lcCookieName)
Local lcCookieData, lnLen, lcResult
lnLen = 4096 && 预设接收结果的缓冲区的大小为:4KB
lcCookieData = Space(lnLen)
lcResult = "" && 预设接收的结果
If InternetGetCookie(lcUrl, lcCookieName, @lcCookieData, @lnLen) <> 0
lcResult = Left(lcCookieData, lnLen-1)
Else
* 259 = 没有可用的数据了。
Endif
Return lcResult
Endfunc
Procedure AddSessionCookie(lcUrl, lcCookieName, lcCookieData)
* 会话的 Cookie 被存储在内存中,可以通过创建它们的进程访问。
= InternetSetCookie(lcUrl, lcCookieName, lcCookieData)
Endproc
Procedure AddPersistentCookie(lcUrl, lcCookieName, lcCookieData, lvExpires)
* Persistent cookies are cookies that have an expiration date.
* These cookies are stored in the Windows\System directory.
= InternetSetCookie(lcUrl, lcCookieName,;
lcCookieData + ";expires=" + toGMTString(lvExpires))
Endproc
Procedure DeleteCookie(lcUrl, lcCookieName)
* To delete a persistent cookie you must set its expiry date
* to a time that has already expired.
* Usually it keeps staying as a session cookie after being deleted
= AddPersistentCookie(lcUrl, lcCookieName, "", Date()-1)
Endproc
Function toGMTString(ltDate)
* 返回 datetime 格式为 DAY, DD-MMM-YYYY HH:MM:SS GMT
Return Substr("SunMonTueWedThuFriSat",;
(Dow(ltDate,1)-1)*3+1, 3) + ", " +;
STRTR(Str(Day(ltDate), 2), " ","0") + "-" +;
SUBSTR("JanFebMarAprMayJunJulAugSepOctNovDec",;
(Month(ltDate)-1)*3+1, 3) + "-" +;
STR(Year(ltDate),4) + " " +;
STRTR(Str(Hour(ltDate), 2), " ","0") + ":" +;
STRTR(Str(Minute(ltDate), 2), " ","0") + ":" +;
STRTR(Str(Sec(ltDate), 2), " ","0") + " GMT"
Endfunc
Procedure Declare
Declare Integer InternetGetCookie In wininet;
STRING lpszUrlName, String lpszCookieName,;
STRING @lpszCookieData, Integer @lpdwSize
Declare Integer InternetSetCookie In wininet;
STRING lpszUrl, String lpszCookieName,;
STRING lpszCookieData
Endproc
[此贴子已经被作者于2017-6-6 16:27编辑过]