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

时间:2007-11-2 15:39:28  来源:编程网  作者:asp.net  责任编辑:aspx

.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.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);

添加到各大书签: