using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Net; using Microsoft.Win32; namespace CookieViewer { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private string[] getCookieFiles() // 获取Cookie文件名 { RegistryKey k = Registry.CurrentUser.OpenSubKey(@"Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders"); if (k != null) { string cookiesPath = (string)k.GetValue("Cookies"); // 获取 Cookie 文件的存放位置 k.Close(); string pattern = Environment.GetEnvironmentVariable("userName") + "@*.txt"; return Directory.GetFiles(cookiesPath, pattern); // 返回找到的文件名数组 } return null; } private void Form1_Load(object sender, EventArgs e) { string[] fs = getCookieFiles(); // 获取Cookie文件名 if (fs != null) { label2.Text = "( 共 " + fs.Length.ToString() + " 个 )"; foreach (string f in fs) { listBox1.Items.Add(f); // 初始化列表框 } } else { label2.Text = "( 没有找到 Cookie 文件! )"; } listView1.Columns.Add("Name", 100); // 设置表头文字 listView1.Columns.Add("Value", 100); listView1.Columns.Add("Domain", 120); listView1.Columns.Add("State", 50); listView1.Columns.Add("Create Date", 126); listView1.Columns.Add("Expires Date", 126); listView1.View = View.Details; // listView的显示方式 listView1.FullRowSelect = true; listView1.MultiSelect = true; // 允许多行选择 listView1.GridLines = true; // 显示网格线 ImageList iL = new ImageList(); // 用于控制listView的行高 iL.ImageSize = new Size(1, 20); listView1.SmallImageList = iL; } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { listView1.Items.Clear(); string fileName = listBox1.Text; // 获取选择的文件名 string[] ls = File.ReadAllLines(fileName, Encoding.Default); for(int ii=0;ii<ls.Length/9;++ii) { int i = ii * 9; ListViewItem vItem = new ListViewItem(new string[]{ls[i],ls[i+1],ls[i+2],ls[i+3], DateTime.FromFileTime(Int64.Parse(ls[i+7])*0x100000000+Int64.Parse(ls[i+6])).ToString("yyyy/MM/dd HH:mm:ss"), DateTime.FromFileTime(Int64.Parse(ls[i+5])*0x100000000+Int64.Parse(ls[i+4])).ToString("yyyy/MM/dd HH:mm:ss") }); listView1.Items.Add(vItem); // 添加一行内容 } } } }