zoukankan      html  css  js  c++  java
  • .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);
       if (key != null)
       {
       string val = (string) key.GetValue("Cookies");
       if (val!= null)
       {
       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];
       }
       }
       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;
      }
      }
  • 相关阅读:
    4.9cf自训9..
    数位dp-入门模板题 hdu2089
    熟能生巧 汽车停车入位技巧解析-倒车入库--侧边停车
    MyBatis参数传入集合之foreach动态sql
    jquery如何判断checkbox(复选框)是否被选中
    Mybatis关联查询(嵌套查询)
    Mysql 分页语句Limit用法
    $.ajax返回的JSON格式的数据后无法执行success的解决方法
    JavaWeb学习总结(十二)——Session
    Spring MVC中Session的正确用法之我见
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1550041.html
Copyright © 2011-2022 走看看