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;
      }
      }
  • 相关阅读:
    linux下动态链接库.so文件 静态链接库.a文件创建及使用
    matlab 自动阈值白平衡算法 程序可编译实现
    C++ 迭代器介绍 [转摘]
    C++ Primer 第三章 标准库类型vector+迭代器iterator 运算
    matlab灰度变彩色+白平衡算法实现
    我和奇葩的故事之失联第七天
    C++ Primer 第三章 标准库类型string运算
    OpenCV白平衡算法之灰度世界法(消除RGB受光照影响)
    查看网络情况netstat指令与动态监控top指令
    linux服务
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1550041.html
Copyright © 2011-2022 走看看