`

.Net/C# 应用程序直接读取本地 Cookies 文件 (由于 WinXP SP2 调用 API: InternetGetCookie 无果)

 
阅读更多

.Net/C# 应用程序直接读取本地 Cookies 文件(WinXP SP2 调用 API: InternetGetCookie 无果)
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using Microsoft.Win32;
public class Class1
{
static void Main(string[] args)
{
System.Console.WriteLine(GetCookiesFromFiles("et8")); //支持 WinXP SP2
System.Console.WriteLine(GetCookie("http://bbs.et8.net"));
System.Console.ReadLine();
}

[System.Runtime.InteropServices.DllImport("wininet.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
public static extern bool InternetGetCookie(string lpszUrlName, string lpszCookieName, StringBuilder lpszCookieData, ref int lpdwSize);

[System.Runtime.InteropServices.DllImport("kernel32.dll")]
internal static extern Int32 GetLastError();

public static string GetCookie(string url) //Win32 API
{
int size = 1000;
StringBuilder sb = new StringBuilder(size);
if (!InternetGetCookie(url,"", sb,ref size))
{
Console.WriteLine("Error code:{0}", GetLastError());
}
return sb.ToString();
}

public static string GetCookiesFromFiles(string MasterDomain) //Cookies File
{
string S = null;
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders", false);
if (key != null)
{
string val = null;
//foreach(string s in key.GetValueNames())
//{
//if (s.ToUpper() == "COOKIES")
//{
//val = (string) key.GetValue(s);
//break;
//}
//}
val = (string) key.GetValue("cooKies");
val = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Cookies);
if (val!= null)
{
System.Console.WriteLine("用户 Cookies 文件目录: " + val);
string[] F = Directory.GetFiles(val);
string s = null;
int i;
Regex r = new Regex(@".*@" + MasterDomain + @"(/[/d+/])?/.txt");

for (i = 0; i < F.Length; i++)
{
if (r.IsMatch(F[i]))
{
s = F[i];
System.Console.WriteLine("用户 Cookies 文件: " + s);
}
}
if (s != null) //s 就是最新文件
{
StreamReader sr = new StreamReader(s);
s = null;
i = 1;
while ((s = sr.ReadLine())!= null)
{
if (s == "*" || s == "/n")
{
i = 0;
}
//每节只读两行
if (i == 1)
{
S += s;
}
else if (i == 2)
{
S += "=" + s + "; ";
}
i++;
}
}
}
}
return S;
}
}

分享到:
评论

相关推荐

    易语言 API取COOKIE源程序

    使用API取COOKIE的源程序。只有2行。简单实用。

    读取IE保存的Cookie

    在VB6中使用 InternetGetCookie函数来读取IE保存的Cookie

    InternetGetCookie.rar_Windows编程_Visual_C++_

    在VB6中使用InternetGetCookie函数来读取Cookie的例子,网络操作关系紧密的实用实例,Cookie用来保存用户的配置数据

    易语言判断CookieA

    易语言判断CookieA源码系统结构:InternetGetCookie, ======窗口程序集1 || ||------_按钮1_被单击 || || ======调用的Dll || ||---[dll]------InternetGetCookie 调用的DLL命令: .DLL命令InternetGetCookie,逻辑型,

    易语言ADSL重拨

    易语言ADSL重拨源码系统结构:InternetGetCookie,InternetSetCookie,InternetDial, ======窗口程序集1 || ||------_按钮1_被单击 || || ======程序集1 || || ======调用的Dll || ||---[dll]------InternetGetCookie |...

    获取IE浏览器Cookie信息的方法

    很多人不知道如何去获取IE浏览器中的Cookie信息,其实获取Cookie的方式很简单,只需要调用InternetGetCookie这个API就可以获得了。 InternetGetCookie的声明方式如下: Private Declare Function InternetGetCookie ...

    试听天空在线歌曲下载工具

    试听天空在线歌曲下载工具系统结构:请求文件,拆解URL,InternetCrackUrl,GetLastError,InternetSetCookie,InternetGetCookie,======窗口程序集1||||------_按钮1_被单击||||------_客户1_数据到达||||------请求文件

    易语言ADSL过滤IP

    易语言ADSL过滤IP源码系统结构:取外网IP地址,InternetGetCookie,InternetSetCookie,InternetDial, ======程序集1 || ||------_启动子程序 || || ======窗口程序集1 || ||------_按钮1_被单击 || ||------取外网IP...

    易语言多线程取cookie

    易语言多线程取cookie源码,多线程取cookie,取cookie,InternetGetCookie,LoadMemLibrary,FreeMemLibrary,GetMemProcAddress,取文本型指针,取字节集指针,CreateThread,MsgWaitForMultipleObjects

    易语言取网站Cookie文本

    易语言取网站Cookie文本源码,取网站Cookie文本,取Cookie,网络_取指定网站Cookie,网络_取指定网站Cookie2,InternetGetCookie,InternetGetCookieEx,取错误信息_

    易语言提交验证码

    易语言提交验证码源码,提交验证码,winhttp,取页面地址,取端口,取域名,取文本中间内容,初始化对象开始,初始化对象结束,InternetSetCookie,InternetGetCookie,HttpQueryInfo,HttpAddRequestHeaders,...

    易语言京东地址连动

    京东地址连动,表达式_替换常量,创建,取文本,替换,搜索全部,取匹配数量,取匹配文本,取子匹配文本,取子表达式个数,CoInitialize,MultiByteToWideChar,MultiByteToWideChar1,InternetSetCookie,InternetGetCookie,...

Global site tag (gtag.js) - Google Analytics