├── .idea ├── Browserform.iml ├── misc.xml ├── modules.xml └── vcs.xml ├── App.config ├── Browserform.csproj ├── Browserform.csproj.user ├── ChatRecord.Designer.cs ├── ChatRecord.cs ├── ChatRecord.resx ├── Form1.Designer.cs ├── Form1.cs ├── Form1.resx ├── Frm ├── FrmChatRecord.Designer.cs ├── FrmChatRecord.cs ├── FrmChatRecord.resx ├── FrmGroupUser.Designer.cs ├── FrmGroupUser.cs ├── FrmGroupUser.resx ├── Test.Designer.cs ├── Test.cs └── Test.resx ├── Program.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs ├── Settings.settings └── app.manifest ├── README.md ├── Resources ├── btn_close.png ├── btn_close1.png ├── btn_minimize.png └── groups_a.png ├── common ├── Base64Helper.cs ├── BaseService.cs ├── ClientMessage.cs ├── Cloud.cs ├── ConvertInfo.cs ├── DownFriendsInfo.cs ├── HtmlGetInfo.cs ├── Log.cs ├── Mywebbrowser.cs ├── Noumenon.cs ├── OperationRecord.cs ├── Record.cs ├── SetStyle.cs ├── SocketClientManager.cs ├── UserMessage.cs ├── WXMsg.cs ├── WXService.cs ├── WeChatGroup.cs ├── Xml.cs ├── ZipHelper.cs ├── bg1.css ├── bg1.js ├── filtter.cs └── request.cs ├── obj ├── Debug │ ├── Browserform.csproj.FileListAbsolute.txt │ ├── DesignTimeResolveAssemblyReferences.cache │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── TempPE │ │ └── Properties.Resources.Designer.cs.dll │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs ├── Release │ ├── Browserform.ChatRecord.resources │ ├── Browserform.Form1.resources │ ├── Browserform.Properties.Resources.resources │ ├── Browserform.csproj.FileListAbsolute.txt │ ├── Browserform.csproj.GenerateResource.Cache │ ├── DesignTimeResolveAssemblyReferences.cache │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs ├── x64 │ ├── Debug │ │ ├── Browserform.ChatRecord.resources │ │ ├── Browserform.Form1.resources │ │ ├── Browserform.Frm.FrmChatRecord.resources │ │ ├── Browserform.Frm.FrmGroupUser.resources │ │ ├── Browserform.Frm.Test.resources │ │ ├── Browserform.Properties.Resources.resources │ │ ├── Browserform.csproj.CoreCompileInputs.cache │ │ ├── Browserform.csproj.FileListAbsolute.txt │ │ ├── Browserform.csproj.GenerateResource.Cache │ │ ├── Browserform.csprojResolveAssemblyReference.cache │ │ ├── Browserform.exe │ │ ├── Browserform.pdb │ │ ├── CoreCompileInputs.cache │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ ├── TempPE │ │ │ └── Properties.Resources.Designer.cs.dll │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ └── build.force │ └── Release │ │ ├── Browserform.ChatRecord.resources │ │ ├── Browserform.Form1.resources │ │ ├── Browserform.Frm.Test.resources │ │ ├── Browserform.Properties.Resources.resources │ │ ├── Browserform.csproj.CoreCompileInputs.cache │ │ ├── Browserform.csproj.FileListAbsolute.txt │ │ ├── Browserform.csproj.GenerateResource.Cache │ │ ├── Browserform.csprojResolveAssemblyReference.cache │ │ ├── Browserform.exe │ │ ├── Browserform.pdb │ │ ├── CoreCompileInputs.cache │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs └── x86 │ ├── Debug │ ├── Browserform.ChatRecord.resources │ ├── Browserform.Form1.resources │ ├── Browserform.Frm.FrmChatRecord.resources │ ├── Browserform.Frm.FrmGroupUser.resources │ ├── Browserform.Frm.FrmMsg.resources │ ├── Browserform.Frm.Test.resources │ ├── Browserform.Properties.Resources.resources │ ├── Browserform.csproj.CopyComplete │ ├── Browserform.csproj.CoreCompileInputs.cache │ ├── Browserform.csproj.FileListAbsolute.txt │ ├── Browserform.csproj.GenerateResource.Cache │ ├── Browserform.csprojResolveAssemblyReference.cache │ ├── Browserform.exe │ ├── Browserform.pdb │ ├── CoreCompileInputs.cache │ ├── DesignTimeResolveAssemblyReferences.cache │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── TempPE │ │ └── Properties.Resources.Designer.cs.dll │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ └── Release │ ├── Browserform.ChatRecord.resources │ ├── Browserform.Form1.resources │ ├── Browserform.Frm.FrmChatRecord.resources │ ├── Browserform.Frm.FrmGroupUser.resources │ ├── Browserform.Frm.FrmMsg.resources │ ├── Browserform.Frm.Test.resources │ ├── Browserform.Properties.Resources.resources │ ├── Browserform.csproj.CopyComplete │ ├── Browserform.csproj.CoreCompileInputs.cache │ ├── Browserform.csproj.FileListAbsolute.txt │ ├── Browserform.csproj.GenerateResource.Cache │ ├── Browserform.csprojResolveAssemblyReference.cache │ ├── Browserform.exe │ ├── CoreCompileInputs.cache │ ├── DesignTimeResolveAssemblyReferences.cache │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── TempPE │ └── Properties.Resources.Designer.cs.dll │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs └── packages.config /.idea/Browserform.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | false 10 | 11 | false 12 | false 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | Android 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Browserform.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | ProjectFiles 13 | 14 | 15 | false 16 | 17 | 18 | Project 19 | false 20 | 21 | -------------------------------------------------------------------------------- /ChatRecord.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Diagnostics; 6 | using System.Drawing; 7 | using System.IO; 8 | using System.Linq; 9 | using System.Runtime.InteropServices; 10 | using System.Text; 11 | using System.Threading.Tasks; 12 | using System.Windows.Forms; 13 | 14 | namespace Browserform 15 | { 16 | public partial class ChatRecord : Form 17 | { 18 | #region 19 | 20 | 21 | /// 22 | /// 一个消息包含2行数据。 23 | /// 24 | /// 25 | /// 26 | /// 27 | public void AddMessage(string my, string fri, MessageInfo info, bool IsGroup) 28 | { 29 | try 30 | { 31 | if (info.MessageType == 0) //我发送的消息 32 | { 33 | rtb_chatRecord.SelectionColor = Color.Blue; 34 | rtb_chatRecord.AppendText(my + " " + info.time.ToString() + "\n"); 35 | rtb_chatRecord.SelectionColor = Color.Black; 36 | rtb_chatRecord.AppendText(info.Content + "\n"); 37 | } 38 | else if (info.MessageType == 10)//我发送的群消息 39 | { 40 | string splitchat = ":\r\n"; 41 | string Group_nickname = info.Content.Substring(0, info.Content.IndexOf(splitchat)).ToString(); 42 | string Group_Content = info.Content.Substring(info.Content.IndexOf(splitchat), info.Content.Length - info.Content.IndexOf(splitchat)).Replace(splitchat, ""); 43 | rtb_chatRecord.SelectionColor = Color.Blue; 44 | rtb_chatRecord.AppendText(Group_nickname + " " + info.time.ToString() + "\n"); 45 | rtb_chatRecord.SelectionColor = Color.Black; 46 | rtb_chatRecord.AppendText(Group_Content + "\n"); 47 | } 48 | else if (info.MessageType == 1)//普通好友的消息记录 49 | { 50 | rtb_chatRecord.SelectionColor = Color.Green; 51 | rtb_chatRecord.AppendText(info.FriendNick + " " + info.time.ToString() + "\n"); 52 | rtb_chatRecord.SelectionColor = Color.Black; 53 | rtb_chatRecord.AppendText(info.Content + "\n"); 54 | } 55 | else if (info.MessageType == 3)//群里的好友消息 56 | { 57 | 58 | string splitchat = ":\r\n"; 59 | string Group_nickname = info.Content.Substring(0, info.Content.IndexOf(splitchat)).ToString(); 60 | string Group_Content = info.Content.Substring(info.Content.IndexOf(splitchat), info.Content.Length - info.Content.IndexOf(splitchat)).Replace(splitchat, ""); 61 | rtb_chatRecord.SelectionColor = Color.Green; 62 | rtb_chatRecord.AppendText(Group_nickname + " " + info.time.ToString() + "\n"); 63 | rtb_chatRecord.SelectionColor = Color.Black; 64 | rtb_chatRecord.AppendText(Group_Content + "\n"); 65 | } 66 | } 67 | catch (Exception ex) 68 | { 69 | 70 | } 71 | } 72 | #endregion 73 | #region 74 | string DBName = ""; 75 | string dbpath = ""; 76 | /// 77 | /// 根据数据库ID加载聊天记录 78 | /// 79 | /// 80 | public ChatRecord(string Wuin,string RootPath) 81 | { 82 | InitializeComponent(); 83 | DBName = Wuin; 84 | dbpath = RootPath + "/db/" + DBName + ".db"; 85 | } 86 | /// 87 | /// 当前的表明 88 | /// 89 | string TableNameNow=""; 90 | private void lb_friend_SelectedIndexChanged(object sender, EventArgs e) 91 | { 92 | this.rtb_chatRecord.Text = ""; 93 | if (this.lb_friend.SelectedItem == null) 94 | return; 95 | string tabname = this.lb_friend.SelectedItem.ToString(); 96 | TableNameNow = tabname; 97 | GetInfoByTableName(1); 98 | } 99 | #region 分页聊天记录 100 | //每页十条 101 | int PageCount = 20; 102 | //当前页码 103 | int pageIndex = 1; 104 | //总共多少页 105 | int SumCountPage = 0; 106 | 107 | private void GetInfoByTableName(int pageIndex) 108 | { 109 | string tabname = TableNameNow; 110 | if (tabname != null && tabname != "") 111 | { 112 | try 113 | { 114 | ShouPageInfo(tabname, pageIndex); 115 | 116 | 117 | //开始位置 118 | string sql = String.Empty; 119 | int StartIndex = 1; 120 | if (pageIndex == 1) 121 | { 122 | StartIndex = 1; 123 | } 124 | else { 125 | StartIndex=PageCount* pageIndex; 126 | } 127 | if (StartIndex == 1) //解决一条时差不到 128 | { 129 | StartIndex--; 130 | sql = String.Format("select * from '{0}' LIMIT {1},{2}; ", tabname, StartIndex, PageCount); 131 | } 132 | else { 133 | sql = String.Format("select * from '{0}' LIMIT {1},{2}; ", tabname, PageCount ,StartIndex); 134 | } 135 | 136 | MyDB.SQLiteDBHelper db = new MyDB.SQLiteDBHelper(dbpath); 137 | 138 | DataTable dt = db.ExecuteDataTable(sql, null); 139 | rtb_chatRecord.Text = ""; 140 | bool IsGroup= IsGroupChat(dt); 141 | foreach (DataRow item in dt.Rows) 142 | { 143 | MessageInfo info = new MessageInfo(); 144 | info.Content = item["Content"].ToString(); 145 | info.MessageType = Convert.ToInt32(item["Type"].ToString()); 146 | info.time = item["Time"].ToString(); 147 | info.FriendNick = tabname; 148 | AddMessage("我", "", info, IsGroup); 149 | } 150 | 151 | 152 | 153 | } 154 | catch (Exception ex) 155 | { 156 | this.rtb_chatRecord.Text = ""; 157 | } 158 | } 159 | } 160 | /// 161 | /// 表里包含群消息不 162 | /// 163 | /// 164 | /// 165 | private bool IsGroupChat(DataTable dt) 166 | { 167 | foreach (DataRow item in dt.Rows) 168 | { 169 | if (item["Type"].ToString().Trim() == "3") //是不不是来自群消息? 170 | { 171 | return true; 172 | } 173 | } 174 | return false; 175 | } 176 | /// 177 | /// 显示当前表的聊天记录信息 包含页数和条数 当前的页数。 178 | /// 179 | /// 180 | private void ShouPageInfo(string tablename,int pageIndex) 181 | { 182 | string sql = String.Format("select Count(*) 'Count' from '{0}'", tablename); 183 | MyDB.SQLiteDBHelper db = new MyDB.SQLiteDBHelper(dbpath); 184 | DataTable dt = db.ExecuteDataTable(sql, null); 185 | 186 | string SumCount = dt.Rows[0]["Count"].ToString(); 187 | if (Convert.ToInt32(SumCount) < PageCount) //不足一页的条目 188 | { 189 | SumCountPage = 1; 190 | } 191 | else { 192 | SumCountPage = Convert.ToInt32(SumCount) / PageCount+1; 193 | } 194 | 195 | 196 | label2_PageShow.Text = String.Format("共{0}条记录,当前第{1}页,共{2}页", SumCount, pageIndex,SumCountPage); 197 | 198 | } 199 | 200 | #endregion 201 | 202 | private void ChatRecord_Load(object sender, EventArgs e) 203 | { 204 | try 205 | { 206 | initDataLog(dbpath); 207 | } 208 | catch (Exception ex) 209 | { 210 | MessageBox.Show("加载聊天记录"+ex.ToString()); 211 | } 212 | } 213 | /// 214 | /// 根据数据库地址加载聊天记录 215 | /// 216 | /// 217 | private void initDataLog(string dbapth) 218 | { 219 | if (File.Exists(dbapth) == false) 220 | return; 221 | MyDB.SQLiteDBHelper db = new MyDB.SQLiteDBHelper(dbapth); 222 | 223 | DataTable dt = db.GetSchema(); 224 | foreach (DataRow item in dt.Rows) 225 | { 226 | if (item["TABLE_TYPE"].ToString() == "table" && item["TABLE_NAME"].ToString() != "" && item["TABLE_NAME"].ToString() != "好友列表") 227 | lb_friend.Items.Add(item["TABLE_NAME"].ToString()); 228 | } 229 | } 230 | 231 | 232 | /// 233 | /// 上一页 234 | /// 235 | /// 236 | /// 237 | private void button1_Up_Click(object sender, EventArgs e) 238 | { 239 | pageIndex--; 240 | if (pageIndex == 0) { 241 | pageIndex = 1; 242 | return; 243 | } 244 | 245 | GetInfoByTableName(pageIndex); 246 | } 247 | /// 248 | /// 下一页 249 | /// 250 | /// 251 | /// 252 | private void button1_down_Click(object sender, EventArgs e) 253 | { 254 | pageIndex++; 255 | if (pageIndex > SumCountPage) 256 | { 257 | pageIndex = SumCountPage; 258 | return; 259 | } 260 | 261 | GetInfoByTableName(pageIndex); 262 | } 263 | /// 264 | /// 首页 265 | /// 266 | /// 267 | /// 268 | private void button1_top_Click(object sender, EventArgs e) 269 | { 270 | GetInfoByTableName(1); 271 | } 272 | /// 273 | /// 尾页 274 | /// 275 | /// 276 | /// 277 | private void button2_bot_Click(object sender, EventArgs e) 278 | { 279 | GetInfoByTableName(SumCountPage); 280 | } 281 | #endregion 282 | 283 | private void btnClose_Click(object sender, EventArgs e) 284 | { 285 | this.Close(); 286 | } 287 | 288 | private void btnMinimize_Click(object sender, EventArgs e) 289 | { 290 | this.WindowState = FormWindowState.Minimized; 291 | } 292 | private void panel1_MouseDown(object sender, MouseEventArgs e) 293 | { 294 | ReleaseCapture(); 295 | SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);//*********************调用移动无窗体控件函数 296 | 297 | } 298 | 299 | //定义无边框窗体Form 300 | [DllImport("user32.dll")]//*********************拖动无窗体的控件 301 | public static extern bool ReleaseCapture(); 302 | [DllImport("user32.dll")] 303 | public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); 304 | public const int WM_SYSCOMMAND = 0x0112; 305 | public const int SC_MOVE = 0xF010; 306 | public const int HTCAPTION = 0x0002; 307 | 308 | 309 | private void btnClose_MouseEnter(object sender, EventArgs e) 310 | { 311 | btnClose.BackColor = Color.DarkRed; 312 | } 313 | 314 | private void btnClose_MouseLeave(object sender, EventArgs e) 315 | { 316 | btnClose.BackColor = Color.RoyalBlue; 317 | } 318 | 319 | private void btnMinimize_MouseEnter(object sender, EventArgs e) 320 | { 321 | btnMinimize.BackColor = Color.DarkRed; 322 | } 323 | 324 | private void btnMinimize_MouseLeave(object sender, EventArgs e) 325 | { 326 | btnMinimize.BackColor = Color.RoyalBlue; 327 | } 328 | 329 | private void rtb_chatRecord_LinkClicked(object sender, LinkClickedEventArgs e) 330 | { 331 | try 332 | { 333 | int index = ((System.Windows.Forms.RichTextBox)sender).Text.ToString().IndexOf("file:"); 334 | string filepath = ((System.Windows.Forms.RichTextBox)sender).Text.ToString().Substring(index); 335 | openimg(filepath.Replace("file:", "")); 336 | } 337 | catch (Exception ex) 338 | { } 339 | } 340 | private void openimg(string imgpath) 341 | { 342 | try 343 | { 344 | if (!File.Exists(imgpath)) 345 | return; 346 | Image img = Image.FromFile(imgpath); 347 | Form frm = new Form(); 348 | frm.Text = imgpath; 349 | PictureBox pic = new PictureBox(); 350 | pic.Dock = DockStyle.Fill; 351 | pic.Image = img; 352 | frm.Controls.Add(pic); 353 | frm.Width = 400; 354 | frm.Height= 400; 355 | frm.FormBorderStyle = FormBorderStyle.FixedDialog; 356 | frm.ShowDialog(); 357 | } 358 | catch (Exception ex) 359 | { } 360 | } 361 | } 362 | } 363 | -------------------------------------------------------------------------------- /Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Browserform 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 false。 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows 窗体设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要修改 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.button1 = new System.Windows.Forms.Button(); 32 | this.textBox1 = new System.Windows.Forms.TextBox(); 33 | this.SuspendLayout(); 34 | // 35 | // button1 36 | // 37 | this.button1.Location = new System.Drawing.Point(560, 12); 38 | this.button1.Name = "button1"; 39 | this.button1.Size = new System.Drawing.Size(75, 23); 40 | this.button1.TabIndex = 0; 41 | this.button1.Text = "测试"; 42 | this.button1.UseVisualStyleBackColor = true; 43 | this.button1.Click += new System.EventHandler(this.button1_Click_1); 44 | // 45 | // textBox1 46 | // 47 | this.textBox1.Location = new System.Drawing.Point(388, 13); 48 | this.textBox1.Name = "textBox1"; 49 | this.textBox1.Size = new System.Drawing.Size(166, 21); 50 | this.textBox1.TabIndex = 1; 51 | // 52 | // Form1 53 | // 54 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 55 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 56 | this.ClientSize = new System.Drawing.Size(667, 452); 57 | this.Controls.Add(this.textBox1); 58 | this.Controls.Add(this.button1); 59 | this.ImeMode = System.Windows.Forms.ImeMode.HangulFull; 60 | this.Margin = new System.Windows.Forms.Padding(2); 61 | this.Name = "Form1"; 62 | this.Text = "客服"; 63 | this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed); 64 | this.Load += new System.EventHandler(this.Form1_Load); 65 | this.ResumeLayout(false); 66 | this.PerformLayout(); 67 | 68 | } 69 | 70 | #endregion 71 | 72 | private System.Windows.Forms.Button button1; 73 | private System.Windows.Forms.TextBox textBox1; 74 | } 75 | } 76 | 77 | -------------------------------------------------------------------------------- /Form1.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /Frm/FrmChatRecord.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Linq; 8 | using System.Runtime.InteropServices; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | using System.Windows.Forms; 12 | 13 | namespace Browserform.Frm 14 | { 15 | public partial class FrmChatRecord : Form 16 | { 17 | string RootPath = String.Empty; 18 | string DbPath = String.Empty; 19 | string Wuin = ""; 20 | /// 21 | /// 当前的表明 22 | /// 23 | string TableNameNow = ""; 24 | public FrmChatRecord() 25 | { 26 | InitializeComponent(); 27 | 28 | } 29 | public FrmChatRecord(string _Wuin, string _RootPath) 30 | { 31 | InitializeComponent(); 32 | Wuin = _Wuin; 33 | RootPath = _RootPath; 34 | DbPath = _RootPath + "/db/" + Wuin + ".db"; 35 | 36 | string htmlpath = RootPath + "/Frm/HTML/ChatRecord.html"; 37 | webBrowser1.Navigate(htmlpath); 38 | } 39 | 40 | private void FrmChatRecord_Load(object sender, EventArgs e) 41 | { 42 | initDataLog(DbPath); 43 | } 44 | private void InitInfo() 45 | { 46 | 47 | } 48 | /// 49 | /// 根据数据库地址加载聊天记录 50 | /// 51 | /// 52 | private void initDataLog(string dbapth) 53 | { 54 | if (File.Exists(dbapth) == false) 55 | return; 56 | MyDB.SQLiteDBHelper db = new MyDB.SQLiteDBHelper(dbapth); 57 | 58 | DataTable dt = db.GetSchema(); 59 | foreach (DataRow item in dt.Rows) 60 | { 61 | if (item["TABLE_TYPE"].ToString() == "table" && item["TABLE_NAME"].ToString() != "" && item["TABLE_NAME"].ToString() != "好友列表") 62 | lb_friend.Items.Add(item["TABLE_NAME"].ToString()); 63 | } 64 | } 65 | /// 66 | /// 显示当前表的聊天记录信息 包含页数和条数 当前的页数。 67 | /// 68 | /// 69 | private void ShouPageInfo(string tablename, int pageIndex) 70 | { 71 | string sql = String.Format("select Count(*) 'Count' from '{0}'", tablename); 72 | MyDB.SQLiteDBHelper db = new MyDB.SQLiteDBHelper(DbPath); 73 | DataTable dt = db.ExecuteDataTable(sql, null); 74 | 75 | string SumCount = dt.Rows[0]["Count"].ToString(); 76 | if (Convert.ToInt32(SumCount) < PageCount) //不足一页的条目 77 | { 78 | SumCountPage = 1; 79 | } 80 | else 81 | { 82 | SumCountPage = Convert.ToInt32(SumCount) / PageCount + 1; 83 | } 84 | 85 | 86 | label2_PageShow.Text = String.Format("共{0}条记录,当前第{1}页,共{2}页", SumCount, pageIndex, SumCountPage); 87 | 88 | } 89 | 90 | 91 | private void GetInfoByTableName(int pageIndex) 92 | { 93 | string tabname = TableNameNow; 94 | if (tabname != null && tabname != "") 95 | { 96 | try 97 | { 98 | ShouPageInfo(tabname, pageIndex); 99 | 100 | 101 | //开始位置 102 | string sql = String.Empty; 103 | int StartIndex = 1; 104 | if (pageIndex == 1) 105 | { 106 | StartIndex = 1; 107 | } 108 | else 109 | { 110 | StartIndex = PageCount * pageIndex; 111 | } 112 | if (StartIndex == 1) //解决一条时差不到 113 | { 114 | StartIndex--; 115 | sql = String.Format("select * from '{0}' LIMIT {1},{2}; ", tabname, StartIndex, PageCount); 116 | } 117 | else 118 | { 119 | sql = String.Format("select * from '{0}' LIMIT {1},{2}; ", tabname, PageCount, StartIndex); 120 | } 121 | 122 | MyDB.SQLiteDBHelper db = new MyDB.SQLiteDBHelper(DbPath); 123 | 124 | DataTable dt = db.ExecuteDataTable(sql, null); 125 | // rtb_chatRecord.Text = ""; 126 | webBrowser1.Document.GetElementById("body1").InnerHtml = ""; 127 | bool IsGroup = IsGroupChat(dt); 128 | foreach (DataRow item in dt.Rows) 129 | { 130 | MessageInfo info = new MessageInfo(); 131 | info.Content = item["Content"].ToString(); 132 | info.MessageType = Convert.ToInt32(item["Type"].ToString()); 133 | info.time = item["Time"].ToString(); 134 | info.FriendNick = tabname; 135 | AddMessage("我", "", info, IsGroup); 136 | } 137 | } 138 | catch (Exception ex) 139 | { 140 | 141 | } 142 | } 143 | } 144 | /// 145 | /// 表里包含群消息不 146 | /// 147 | /// 148 | /// 149 | private bool IsGroupChat(DataTable dt) 150 | { 151 | foreach (DataRow item in dt.Rows) 152 | { 153 | if (item["Type"].ToString().Trim() == "3") //是不不是来自群消息? 154 | { 155 | return true; 156 | } 157 | } 158 | return false; 159 | } 160 | /// 161 | /// 一个消息包含2行数据。 162 | /// 163 | /// 164 | /// 165 | /// 166 | public void AddMessage(string my, string fri, MessageInfo info, bool IsGroup) 167 | { 168 | try 169 | { 170 | 171 | string temp = ""; 172 | if (info.MessageType == 0) //我发送的消息 173 | { 174 | temp += ResultP("我\t"+info.time , "color:blue;"); 175 | 176 | temp += ResultP(info.Content, ""); 177 | } 178 | else if (info.MessageType == 1)//普通好友的消息记录 179 | { 180 | temp += ResultP(info.FriendNick + " " + info.time, "color:green;"); 181 | temp += ResultP(info.Content, ""); 182 | } 183 | else if (info.MessageType == 10)//我发送的群消息 184 | { 185 | temp += ResultP(info.time, "color:blue;"); 186 | temp += ResultP(info.Content, ""); 187 | } 188 | else if (info.MessageType == 3)//群里的好友消息 189 | { 190 | temp += ResultP(info.time, ""); 191 | temp += ResultP(info.Content, ""); 192 | } 193 | 194 | webBrowser1.Document.GetElementById("body1").InnerHtml += temp; 195 | webBrowser1.Document.Body.InnerHtml += temp; 196 | } 197 | catch (Exception ex) 198 | { 199 | 200 | } 201 | } 202 | /// 203 | /// 返回P 204 | /// 205 | /// 206 | /// 207 | /// 208 | private string ResultP(string content,string listyle) 209 | { 210 | 211 | string result = ""; 212 | if (content.Contains("file")) 213 | { 214 | 215 | result = ""; 216 | } 217 | else{ 218 | 219 | result = "

" + content + "

"; 220 | } 221 | 222 | return result; 223 | } 224 | 225 | #region 分页 226 | //每页十条 227 | int PageCount = 20; 228 | //当前页码 229 | int pageIndex = 1; 230 | //总共多少页 231 | int SumCountPage = 0; 232 | /// 233 | /// 下一页 234 | /// 235 | /// 236 | /// 237 | private void button1_down_Click(object sender, EventArgs e) 238 | { 239 | pageIndex++; 240 | if (pageIndex > SumCountPage) 241 | { 242 | pageIndex = SumCountPage; 243 | return; 244 | } 245 | 246 | GetInfoByTableName(pageIndex); 247 | } 248 | /// 249 | /// 首页 250 | /// 251 | /// 252 | /// 253 | private void button1_top_Click(object sender, EventArgs e) 254 | { 255 | GetInfoByTableName(1); 256 | } 257 | /// 258 | /// 尾页 259 | /// 260 | /// 261 | /// 262 | private void button2_bot_Click(object sender, EventArgs e) 263 | { 264 | GetInfoByTableName(SumCountPage); 265 | } 266 | /// 267 | /// 上一页 268 | /// 269 | /// 270 | /// 271 | private void button1_Up_Click(object sender, EventArgs e) 272 | { 273 | pageIndex--; 274 | if (pageIndex == 0) 275 | { 276 | pageIndex = 1; 277 | return; 278 | } 279 | 280 | GetInfoByTableName(pageIndex); 281 | } 282 | #endregion 283 | 284 | private void lb_friend_SelectedIndexChanged(object sender, EventArgs e) 285 | { 286 | // this.rtb_chatRecord.Text = ""; 287 | if (this.lb_friend.SelectedItem == null) 288 | return; 289 | string tabname = this.lb_friend.SelectedItem.ToString(); 290 | TableNameNow = tabname; 291 | GetInfoByTableName(1); 292 | } 293 | 294 | private void btnClose_Click(object sender, EventArgs e) 295 | { 296 | this.Close(); 297 | } 298 | 299 | private void panel4_MouseDown(object sender, MouseEventArgs e) 300 | { 301 | 302 | ReleaseCapture(); 303 | SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);//*********************调用移动无窗体控件函数 304 | 305 | } 306 | 307 | //定义无边框窗体Form 308 | [DllImport("user32.dll")]//*********************拖动无窗体的控件 309 | public static extern bool ReleaseCapture(); 310 | [DllImport("user32.dll")] 311 | public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); 312 | public const int WM_SYSCOMMAND = 0x0112; 313 | public const int SC_MOVE = 0xF010; 314 | public const int HTCAPTION = 0x0002; 315 | 316 | } 317 | } 318 | -------------------------------------------------------------------------------- /Frm/FrmChatRecord.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /Frm/FrmGroupUser.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /Frm/Test.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Browserform.Frm 2 | { 3 | partial class Test 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | this.SuspendLayout(); 34 | // 35 | // groupBox1 36 | // 37 | this.groupBox1.Location = new System.Drawing.Point(13, 49); 38 | this.groupBox1.Name = "groupBox1"; 39 | this.groupBox1.Size = new System.Drawing.Size(795, 457); 40 | this.groupBox1.TabIndex = 0; 41 | this.groupBox1.TabStop = false; 42 | this.groupBox1.Text = "groupBox1"; 43 | // 44 | // button1 45 | // 46 | this.button1.Location = new System.Drawing.Point(714, 20); 47 | this.button1.Name = "button1"; 48 | this.button1.Size = new System.Drawing.Size(75, 23); 49 | this.button1.TabIndex = 2; 50 | this.button1.Text = "执行"; 51 | this.button1.UseVisualStyleBackColor = true; 52 | this.button1.Click += new System.EventHandler(this.button1_Click); 53 | // 54 | // Test 55 | // 56 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 57 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 58 | this.ClientSize = new System.Drawing.Size(820, 518); 59 | this.Controls.Add(this.button1); 60 | this.Controls.Add(this.groupBox1); 61 | this.Name = "Test"; 62 | this.Text = "Test"; 63 | this.Load += new System.EventHandler(this.Test_Load); 64 | this.ResumeLayout(false); 65 | 66 | } 67 | 68 | #endregion 69 | 70 | private System.Windows.Forms.GroupBox groupBox1; 71 | private System.Windows.Forms.Button button1; 72 | } 73 | } -------------------------------------------------------------------------------- /Frm/Test.cs: -------------------------------------------------------------------------------- 1 | using CefSharp; 2 | using CefSharp.WinForms; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.ComponentModel; 6 | using System.Data; 7 | using System.Drawing; 8 | using System.Linq; 9 | using System.Reflection; 10 | using System.Text; 11 | using System.Threading.Tasks; 12 | using System.Windows.Forms; 13 | 14 | namespace Browserform.Frm 15 | { 16 | public partial class Test : Form 17 | { 18 | public Test() 19 | { 20 | InitializeComponent(); 21 | } 22 | static ChromiumWebBrowser web; 23 | private void Test_Load(object sender, EventArgs e) 24 | { 25 | //var re = new request(); 26 | 27 | //接收和发送的http消息 28 | //re.msg += Re_msg; 29 | //re.msg2 += Re_msg2; 30 | web = new ChromiumWebBrowser("https://www.baidu.com"); 31 | 32 | web.Dock = DockStyle.Fill; 33 | //web.RequestHandler = re; 34 | web.FrameLoadEnd += Web_FrameLoadEnd; 35 | this.groupBox1.Controls.Add(web); 36 | } 37 | private void Web_FrameLoadEnd(object sender, FrameLoadEndEventArgs e) 38 | { 39 | var cookieManager = CefSharp.Cef.GetGlobalCookieManager(); 40 | 41 | 42 | 43 | } 44 | 45 | private void button1_Click(object sender, EventArgs e) 46 | { 47 | try { 48 | Convert.ToInt32("asdf"); 49 | } 50 | catch (Exception ex) 51 | { 52 | MethodBase method = new System.Diagnostics.StackTrace().GetFrame(0).GetMethod(); 53 | CommonTools.ExceptionLogInfo.SaveExceptionInfo(method.ReflectedType.FullName, method.Name, ex.ToString()); 54 | } 55 | 56 | return; 57 | 58 | Task htmlSource = web.GetSourceAsync(); 59 | 60 | 61 | Clipboard.SetText(htmlSource.Result.ToString()); 62 | 63 | 64 | 65 | 66 | 67 | } 68 | 69 | } 70 | class China { 71 | public string name = ""; 72 | protected string Visitor = ""; 73 | 74 | private void fff() 75 | { 76 | //1.获得是否选择了继续执行 赋值给flag 77 | 78 | bool flag = false; //定义变量接收是否继续的 79 | if (flag) 80 | { 81 | //继续执行代码 82 | } 83 | else { 84 | //不执行跳出 85 | } 86 | 87 | } 88 | 89 | 90 | 91 | } 92 | 93 | } 94 | -------------------------------------------------------------------------------- /Frm/Test.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using Browserform.Frm; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Diagnostics; 5 | using System.Linq; 6 | using System.Threading; 7 | using System.Threading.Tasks; 8 | using System.Windows.Forms; 9 | 10 | namespace Browserform 11 | { 12 | static class Program 13 | { 14 | /// 15 | /// 应用程序的主入口点。 16 | /// 17 | [STAThread] 18 | static void Main() 19 | { 20 | try 21 | { 22 | Application.EnableVisualStyles(); 23 | Application.SetCompatibleTextRenderingDefault(false); 24 | 25 | Trace.Listeners.Clear(); 26 | Trace.Listeners.Add(new Log()); 27 | 28 | //Application.Run(new FrmChatRecord("3422760224", Environment.CurrentDirectory));//1914506234 3422760224 10574944 29 | Application.Run(new Form1()); 30 | } 31 | catch (Exception ex) 32 | { 33 | MyDB.LogInfo.SaveCollapseLog(ex.ToString()); 34 | } 35 | } 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("Browserform")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Browserform")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | //将 ComVisible 设置为 false 将使此程序集中的类型 18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(true)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("74a0f323-93b4-4dc9-b346-b9cfbd709135")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, 33 | // 方法是按如下所示使用“*”: : 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Browserform.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// 一个强类型的资源类,用于查找本地化的字符串等。 17 | /// 18 | // 此类是由 StronglyTypedResourceBuilder 19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen 21 | // (以 /str 作为命令选项),或重新生成 VS 项目。 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// 返回此类使用的缓存的 ResourceManager 实例。 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Browserform.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// 使用此强类型资源类,为所有资源查找 51 | /// 重写当前线程的 CurrentUICulture 属性。 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// 查找 System.Drawing.Bitmap 类型的本地化资源。 65 | /// 66 | internal static System.Drawing.Bitmap btn_close { 67 | get { 68 | object obj = ResourceManager.GetObject("btn_close", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// 查找 System.Drawing.Bitmap 类型的本地化资源。 75 | /// 76 | internal static System.Drawing.Bitmap btn_close1 { 77 | get { 78 | object obj = ResourceManager.GetObject("btn_close1", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// 查找 System.Drawing.Bitmap 类型的本地化资源。 85 | /// 86 | internal static System.Drawing.Bitmap btn_minimize { 87 | get { 88 | object obj = ResourceManager.GetObject("btn_minimize", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// 查找 System.Drawing.Bitmap 类型的本地化资源。 95 | /// 96 | internal static System.Drawing.Bitmap groups_a { 97 | get { 98 | object obj = ResourceManager.GetObject("groups_a", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\btn_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\btn_minimize.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | ..\Resources\groups_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | ..\Resources\btn_close1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Browserform.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Properties/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 47 | 54 | 55 | 69 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CefSharpGetData 2 | 3 | 本工程采用winform CEF 57版本。 4 | 5 | 实现了GET POST 链接,资源,返回值,模拟提交,下载等等功能 6 | 7 | 根据这些特性,可实现数据爬取等等。 8 | 9 | 2020.6.15 可实现自动化脚本登录。 10 | -------------------------------------------------------------------------------- /Resources/btn_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/Resources/btn_close.png -------------------------------------------------------------------------------- /Resources/btn_close1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/Resources/btn_close1.png -------------------------------------------------------------------------------- /Resources/btn_minimize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/Resources/btn_minimize.png -------------------------------------------------------------------------------- /Resources/groups_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/Resources/groups_a.png -------------------------------------------------------------------------------- /common/Base64Helper.cs: -------------------------------------------------------------------------------- 1 | using CefSharp; 2 | using CefSharp.WinForms; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Linq; 8 | using System.Reflection; 9 | using System.Text; 10 | using System.Text.RegularExpressions; 11 | using System.Threading.Tasks; 12 | 13 | namespace Browserform.common 14 | { 15 | public class Base64Helper 16 | { 17 | /// 18 | /// 换了采用 登录钱扫码时候获取 19 | /// 20 | /// 21 | /// 22 | /// 23 | public static string get_image(string strHtml, string filePath) 24 | { 25 | string[] arr1 = null; 26 | try 27 | { 28 | arr1 = GetHtmlImageUrlList(strHtml); 29 | string baseimg = arr1[1].ToString(); 30 | string bsse64 = baseimg.Remove(0, 20); 31 | byte[] arr = Convert.FromBase64String(bsse64.Replace(" %2B", " +")); 32 | MemoryStream ms = new MemoryStream(arr); 33 | Bitmap bmp = new Bitmap(ms); 34 | bmp.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); 35 | return filePath; 36 | } 37 | catch (Exception ex) 38 | { 39 | MethodBase method = new System.Diagnostics.StackTrace().GetFrame(0).GetMethod(); 40 | string ErrorImg = ""; 41 | for (int i = 0; i < arr1.Length; i++) 42 | { 43 | ErrorImg += arr1[i].ToString(); 44 | } 45 | CommonTools.ExceptionLogInfo.SaveExceptionInfo(method.ReflectedType.FullName, method.Name, ex.ToString()+"图片数组"+ ErrorImg.ToString()+"错误网页:"+ strHtml); 46 | } 47 | return ""; 48 | 49 | } 50 | /// 51 | /// 取得HTML中所有图片的 URL。 52 | /// 53 | /// HTML代码 54 | /// 图片的URL列表 55 | public static string[] GetHtmlImageUrlList(string sHtmlText) 56 | { 57 | // 定义正则表达式用来匹配 img 标签 58 | Regex regImg = new Regex(@"]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase); 59 | 60 | // 搜索匹配的字符串 61 | MatchCollection matches = regImg.Matches(sHtmlText); 62 | int i = 0; 63 | string[] sUrlList = new string[matches.Count]; 64 | 65 | // 取得匹配项列表 66 | foreach (Match match in matches) 67 | sUrlList[i++] = match.Groups["imgUrl"].Value; 68 | return sUrlList; 69 | } 70 | 71 | 72 | 73 | public static async Task GetUxinAsync(ChromiumWebBrowser web) 74 | { 75 | var html = await web.GetSourceAsync(); 76 | Regex reg = new Regex("&uin=(.*)deviceid"); 77 | MatchCollection mc = reg.Matches(html); //在内容中匹配与正则表达式匹配的字符 78 | string str = ""; 79 | foreach (Match m in mc) //循环匹配到的字符 80 | { 81 | str = m.Value; 82 | return str; 83 | } 84 | 85 | 86 | return ""; 87 | } 88 | 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /common/BaseService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace Browserform.common 11 | { 12 | /// 13 | /// 访问http服务器类 14 | /// 15 | static class BaseService 16 | { 17 | /// 18 | /// 访问服务器时的cookies 19 | /// 20 | public static CookieContainer CookiesContainer; 21 | /// 22 | /// 向服务器发送get请求 返回服务器回复数据 23 | /// 24 | /// 25 | /// 26 | public static byte[] SendGetRequest(string url) 27 | { 28 | try 29 | { 30 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 31 | request.Method = "get"; 32 | 33 | if (CookiesContainer == null) 34 | { 35 | CookiesContainer = new CookieContainer(); 36 | } 37 | //Console.WriteLine("****url:" + url + "Cookie" + GetAllCookiesB(CookiesContainer) + "===="); 38 | request.CookieContainer = CookiesContainer; //启用cookie 39 | 40 | HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 41 | Stream response_stream = response.GetResponseStream(); 42 | 43 | int count = (int)response.ContentLength; 44 | int offset = 0; 45 | byte[] buf = new byte[count]; 46 | while (count > 0) //读取返回数据 47 | { 48 | int n = response_stream.Read(buf, offset, count); 49 | if (n == 0) break; 50 | count -= n; 51 | offset += n; 52 | } 53 | return buf; 54 | } 55 | catch 56 | { 57 | return null; 58 | } 59 | } 60 | /// 61 | /// 向服务器发送post请求 返回服务器回复数据 62 | /// 63 | /// 64 | /// 65 | /// 66 | public static byte[] SendPostRequest(CookieContainer CookiesContainer, string url, string body) 67 | { 68 | try 69 | { 70 | byte[] request_body = Encoding.UTF8.GetBytes(body); 71 | 72 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 73 | request.Method = "post"; 74 | request.ContentLength = request_body.Length; 75 | 76 | Stream request_stream = request.GetRequestStream(); 77 | 78 | request_stream.Write(request_body, 0, request_body.Length); 79 | 80 | if (CookiesContainer == null) 81 | { 82 | CookiesContainer = new CookieContainer(); 83 | } 84 | request.CookieContainer = CookiesContainer; //启用cookie 85 | 86 | HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 87 | Stream response_stream = response.GetResponseStream(); 88 | 89 | int count = (int)response.ContentLength; 90 | int offset = 0; 91 | byte[] buf = new byte[count]; 92 | while (count > 0) //读取返回数据 93 | { 94 | int n = response_stream.Read(buf, offset, count); 95 | if (n == 0) break; 96 | count -= n; 97 | offset += n; 98 | } 99 | return buf; 100 | } 101 | catch 102 | { 103 | return null; 104 | } 105 | } 106 | /// 107 | /// 获取指定cookie 108 | /// 109 | /// 110 | /// 111 | public static Cookie GetCookie(string name) 112 | { 113 | List cookies = GetAllCookies(CookiesContainer); 114 | foreach (Cookie c in cookies) 115 | { 116 | if (c.Name == name) 117 | { 118 | return c; 119 | } 120 | } 121 | return null; 122 | } 123 | 124 | /// 125 | /// 获取指定cookie 从CookieContainer里取 126 | /// 127 | /// 128 | /// 129 | /// 130 | public static Cookie GetCookie(string name, CookieContainer CookiesContainer) 131 | { 132 | List cookies = GetAllCookies(CookiesContainer); 133 | foreach (Cookie c in cookies) 134 | { 135 | if (c.Name == name) 136 | { 137 | return c; 138 | } 139 | } 140 | return null; 141 | } 142 | 143 | private static List GetAllCookies(CookieContainer cc) 144 | { 145 | List lstCookies = new List(); 146 | 147 | Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable", 148 | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | 149 | System.Reflection.BindingFlags.Instance, null, cc, new object[] { }); 150 | 151 | foreach (object pathList in table.Values) 152 | { 153 | SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list", 154 | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField 155 | | System.Reflection.BindingFlags.Instance, null, pathList, new object[] { }); 156 | foreach (CookieCollection colCookies in lstCookieCol.Values) 157 | foreach (Cookie c in colCookies) lstCookies.Add(c); 158 | } 159 | return lstCookies; 160 | } 161 | 162 | 163 | private static string GetAllCookiesB(CookieContainer cc) 164 | { 165 | List lstCookies = new List(); 166 | 167 | Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable", 168 | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | 169 | System.Reflection.BindingFlags.Instance, null, cc, new object[] { }); 170 | 171 | foreach (object pathList in table.Values) 172 | { 173 | SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list", 174 | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField 175 | | System.Reflection.BindingFlags.Instance, null, pathList, new object[] { }); 176 | foreach (CookieCollection colCookies in lstCookieCol.Values) 177 | foreach (Cookie c in colCookies) lstCookies.Add(c); 178 | } 179 | StringBuilder sbc = new StringBuilder(); 180 | foreach (Cookie cookie in lstCookies) 181 | { 182 | sbc.AppendFormat("{0};{1};{2};{3};{4};{5}\r\n", 183 | cookie.Domain, cookie.Name, cookie.Path, cookie.Port, 184 | cookie.Secure.ToString(), cookie.Value); 185 | } 186 | 187 | return sbc.ToString(); 188 | } 189 | } 190 | } 191 | -------------------------------------------------------------------------------- /common/ClientMessage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Net.Sockets; 6 | using System.Text; 7 | using System.Threading; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace Browserform.common 12 | { 13 | public class ClientMessage 14 | { 15 | 16 | public ClientMessage() { 17 | 18 | } 19 | 20 | 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /common/Cloud.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Threading.Tasks; 4 | using Newtonsoft.Json; 5 | using System.Collections; 6 | using System.Net.Http; 7 | using System.Net; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | using System.Diagnostics; 11 | 12 | namespace Browserform 13 | { 14 | class Cloud 15 | { 16 | static string ServerUrl = Xml.GetServerUrl(); 17 | 18 | /// 19 | /// 封装HtppClient请求 20 | /// 21 | /// 请求数据模型 22 | /// 请求服务器接口 23 | /// get or post 24 | /// 25 | public async static Task HttpConnect(object request, string api, string mode) 26 | { 27 | 28 | HttpResponseMessage response = new HttpResponseMessage(); 29 | 30 | try 31 | { 32 | using (var client = new HttpClient()) 33 | { 34 | //超时时间:第一次1秒,第二次2秒,第三次3秒。值得商榷 35 | // client.Timeout = TimeSpan.FromMilliseconds(3000 * (RequestCount + 1)); 36 | client.BaseAddress = new Uri(ServerUrl); 37 | 38 | client.DefaultRequestHeaders.Accept.Clear(); 39 | //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xhtml+xml")); 40 | 41 | if (mode == "Post") 42 | { 43 | response = await client.PostAsync(api, new StringContent(JsonConvert.SerializeObject(request))); 44 | } 45 | else if (mode == "Get") 46 | { 47 | response = await client.GetAsync(api); 48 | } 49 | 50 | } 51 | } 52 | catch (Exception ex) 53 | { 54 | Trace.TraceError(ex.Message); 55 | } 56 | 57 | return response; 58 | } 59 | 60 | public async static void Login(string device, string PicPath) 61 | { 62 | try 63 | { 64 | string responseText = ""; 65 | FileStream fs = new FileStream(PicPath, System.IO.FileMode.Open, System.IO.FileAccess.Read); 66 | byte[] fileBytes = new byte[fs.Length]; 67 | fs.Read(fileBytes, 0, fileBytes.Length); 68 | fs.Close(); fs.Dispose(); 69 | 70 | HttpRequestClient httpRequestClient = new HttpRequestClient(); 71 | httpRequestClient.SetFieldValue("device", device); 72 | httpRequestClient.SetFieldValue("pic", Path.GetFileName(PicPath), "application/octet-stream", fileBytes); 73 | string UploadApiUrl = ServerUrl + "/wgcs/custom/upload"; 74 | httpRequestClient.Upload(UploadApiUrl, out responseText); 75 | } 76 | catch (Exception ex) 77 | { 78 | MessageBox.Show("服务器连接异常!"); 79 | } 80 | } 81 | 82 | 83 | /// 84 | /// description:http post请求客户端 85 | /// last-modified-date:2012-02-28 86 | /// 87 | public class HttpRequestClient 88 | { 89 | #region //字段 90 | private ArrayList bytesArray; 91 | private Encoding encoding = Encoding.UTF8; 92 | private string boundary = String.Empty; 93 | #endregion 94 | 95 | #region //构造方法 96 | public HttpRequestClient() 97 | { 98 | bytesArray = new ArrayList(); 99 | string flag = DateTime.Now.Ticks.ToString("x"); 100 | boundary = "---------------------------" + flag; 101 | } 102 | #endregion 103 | 104 | #region //方法 105 | /// 106 | /// 合并请求数据 107 | /// 108 | /// 109 | private byte[] MergeContent() 110 | { 111 | int length = 0; 112 | int readLength = 0; 113 | string endBoundary = "--" + boundary + "--\r\n"; 114 | byte[] endBoundaryBytes = encoding.GetBytes(endBoundary); 115 | 116 | bytesArray.Add(endBoundaryBytes); 117 | 118 | foreach (byte[] b in bytesArray) 119 | { 120 | length += b.Length; 121 | } 122 | 123 | byte[] bytes = new byte[length]; 124 | 125 | foreach (byte[] b in bytesArray) 126 | { 127 | b.CopyTo(bytes, readLength); 128 | readLength += b.Length; 129 | } 130 | 131 | return bytes; 132 | } 133 | 134 | /// 135 | /// 上传 136 | /// 137 | /// 请求url 138 | /// 响应 139 | /// 140 | public bool Upload(String requestUrl, out String responseText) 141 | { 142 | WebClient webClient = new WebClient(); 143 | webClient.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary); 144 | 145 | byte[] responseBytes; 146 | byte[] bytes = MergeContent(); 147 | 148 | try 149 | { 150 | responseBytes = webClient.UploadData(requestUrl, bytes); 151 | responseText = System.Text.Encoding.UTF8.GetString(responseBytes); 152 | return true; 153 | } 154 | catch (WebException ex) 155 | { 156 | Stream responseStream = ex.Response.GetResponseStream(); 157 | responseBytes = new byte[ex.Response.ContentLength]; 158 | responseStream.Read(responseBytes, 0, responseBytes.Length); 159 | } 160 | responseText = System.Text.Encoding.UTF8.GetString(responseBytes); 161 | return false; 162 | } 163 | 164 | /// 165 | /// 设置表单数据字段 166 | /// 167 | /// 字段名 168 | /// 字段值 169 | /// 170 | public void SetFieldValue(String fieldName, String fieldValue) 171 | { 172 | string httpRow = "--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}\r\n"; 173 | string httpRowData = String.Format(httpRow, fieldName, fieldValue); 174 | 175 | bytesArray.Add(encoding.GetBytes(httpRowData)); 176 | } 177 | 178 | /// 179 | /// 设置表单文件数据 180 | /// 181 | /// 字段名 182 | /// 字段值 183 | /// 内容内型 184 | /// 文件字节流 185 | /// 186 | public void SetFieldValue(String fieldName, String filename, String contentType, Byte[] fileBytes) 187 | { 188 | string end = "\r\n"; 189 | string httpRow = "--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n"; 190 | string httpRowData = String.Format(httpRow, fieldName, filename, contentType); 191 | 192 | byte[] headerBytes = encoding.GetBytes(httpRowData); 193 | byte[] endBytes = encoding.GetBytes(end); 194 | byte[] fileDataBytes = new byte[headerBytes.Length + fileBytes.Length + endBytes.Length]; 195 | 196 | headerBytes.CopyTo(fileDataBytes, 0); 197 | fileBytes.CopyTo(fileDataBytes, headerBytes.Length); 198 | endBytes.CopyTo(fileDataBytes, headerBytes.Length + fileBytes.Length); 199 | 200 | bytesArray.Add(fileDataBytes); 201 | } 202 | #endregion 203 | } 204 | } 205 | } 206 | 207 | -------------------------------------------------------------------------------- /common/ConvertInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Browserform.common 8 | { 9 | public class ConvertInfo 10 | { 11 | /// 12 | /// 转换类 13 | /// 14 | /// 15 | /// 16 | public static List CovnertMemberListItem(List List_MemberList) 17 | { 18 | List list = new List(); 19 | for (int i = 0; i < List_MemberList.Count; i++) 20 | { 21 | MyDB.MemberListItem info = new MyDB.MemberListItem(); 22 | info.UserName = List_MemberList[i].UserName.ToString(); 23 | info.NickName= List_MemberList[i].NickName.ToString(); 24 | list.Add(info); 25 | } 26 | return list; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /common/DownFriendsInfo.cs: -------------------------------------------------------------------------------- 1 | using MyDB; 2 | using Newtonsoft.Json; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Net; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | 11 | namespace Browserform.common 12 | { 13 | /// 14 | /// 加载用户好友信息类 15 | /// 16 | public class DownFriendsInfo 17 | { 18 | static string FriendsImg = System.Environment.CurrentDirectory + "\\RecvFiles\\"; 19 | 20 | 21 | public static System.Action SaveFriendsImg(MyDB.Root root_friend, CookieContainer myCookieContainer, string wxUin) 22 | { 23 | try 24 | { 25 | string wxUinFile = FriendsImg + wxUin + "/"; 26 | for (int i = 0; i < root_friend.MemberList.Count; i++) 27 | { 28 | string imgurl = "https://wx2.qq.com" + root_friend.MemberList[i].HeadImgUrl; 29 | string FileName = root_friend.MemberList[i].UserName.ToString().Replace("@", "") + ".jpg"; 30 | CommonTools.WebRequestAction.getimages(imgurl, myCookieContainer, wxUinFile, FileName); 31 | } 32 | } 33 | catch (Exception ex) 34 | { } 35 | return null; 36 | 37 | } 38 | 39 | /// 40 | /// 获得信息 41 | /// 42 | /// 43 | public static Root GetFriends(string url, CookieContainer myCookieContainer) 44 | { 45 | Root root = new Root(); 46 | try 47 | { 48 | StringBuilder content = new StringBuilder(); 49 | HttpWebRequest request = HttpWebRequest.Create(url.ToString()) as HttpWebRequest; 50 | request.Method = "GET"; 51 | request.CookieContainer = myCookieContainer; 52 | HttpWebResponse response = null; 53 | using (WebResponse wr = request.GetResponse()) 54 | { 55 | response = wr as HttpWebResponse; 56 | using (Stream responseStream = response.GetResponseStream()) 57 | { 58 | StreamReader sReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")); 59 | // 开始读取数据 60 | Char[] sReaderBuffer = new Char[256]; 61 | int count = sReader.Read(sReaderBuffer, 0, 256); 62 | while (count > 0) 63 | { 64 | String tempStr = new String(sReaderBuffer, 0, count); 65 | content.Append(tempStr); 66 | count = sReader.Read(sReaderBuffer, 0, 256); 67 | } 68 | // 读取结束 69 | sReader.Close(); 70 | } 71 | } 72 | //读取好友列表并保存到数据库 73 | root = JsonConvert.DeserializeObject(content.ToString()); 74 | return root; 75 | } 76 | catch (Exception ex) 77 | { 78 | return root; 79 | } 80 | } 81 | 82 | 83 | /// 84 | /// 保存接收到的 发的图片信息 85 | /// 86 | /// 87 | public static string SaveSendImgPath(CookieContainer myCookieContainer, ReceiveMessageRoot msg, LoginRedirectResult LoginRedirectResult) 88 | { 89 | try 90 | { 91 | string url = String.Empty; 92 | if (LoginRedirectResult.WxorWx2 == 0) return ""; 93 | if (LoginRedirectResult.WxorWx2 == 1) 94 | url = String.Format(common.WXService.Wx_OldimgMsg, msg.AddMsgList[0].MsgId, LoginRedirectResult.skey); 95 | if (LoginRedirectResult.WxorWx2 == 2) 96 | url = String.Format(common.WXService.Wx2_NewImgMsg,msg.AddMsgList[0].MsgId, LoginRedirectResult.skey); 97 | string Imgdir = System.Environment.CurrentDirectory + "\\RecvFiles\\"+ LoginRedirectResult.wxuin + "\\"; 98 | string FileName = msg.AddMsgList[0].MsgId + ".jpg"; 99 | string resultPath = CommonTools.WebRequestAction.getimages(url, myCookieContainer, Imgdir, FileName); 100 | return resultPath; 101 | } 102 | catch (Exception ex) 103 | { 104 | return ""; 105 | } 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /common/HtmlGetInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.Specialized; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Text.RegularExpressions; 7 | using System.Threading.Tasks; 8 | using System.Web; 9 | 10 | namespace Browserform.common 11 | { 12 | public class HtmlGetInfo 13 | { 14 | /// 15 | /// 获得 NickName 16 | /// 17 | /// 18 | /// 19 | public static string GetNickName(string Html) 20 | { 21 | string NickName = ""; 22 | 23 | // 定义正则表达式用来匹配 img 标签 24 | try 25 | { 26 | string spanreg = String.Format(@").*").Replace("'", "\""); 27 | Regex regImg = new Regex(spanreg, RegexOptions.IgnoreCase); 28 | 29 | // 搜索匹配的字符串 30 | MatchCollection matches = regImg.Matches(Html); 31 | string htmlSpan = matches[0].Value; 32 | NickName = htmlSpan.Substring(htmlSpan.IndexOf(">")+1).ToString(); 33 | NickName = NickName.Replace("", ""); 34 | 35 | 36 | 37 | return NickName; 38 | } 39 | catch (Exception ex) 40 | { 41 | return NickName; 42 | } 43 | } 44 | /// 45 | /// 获得非通讯录里的 群组的NickNickName 46 | /// 47 | /// 48 | /// 49 | public static string GetGroupNickName(string Html) 50 | { 51 | string GroupNickName = ""; 52 | // 定义正则表达式用来匹配 img 标签 53 | try 54 | { 55 | 56 | Regex re = new Regex(@"]*class=""title_wrap""[^>]*>[\s\S]*?", RegexOptions.Multiline); 57 | MatchCollection matches1 = re.Matches(Html); 58 | string ftr=matches1[0].Value; 59 | string f1 = ftr.Substring(ftr.IndexOf("")- ftr.IndexOf("')+1); 61 | return GroupNickName; 62 | } 63 | catch (Exception ex) 64 | { 65 | return GroupNickName; 66 | } 67 | } 68 | public static string GetGroupuserName(string Html) 69 | { 70 | string GroupNickName = ""; 71 | string UserName = ""; 72 | // 定义正则表达式用来匹配 img 标签 73 | try 74 | { 75 | 76 | Regex re = new Regex(@"]*class=""title_wrap""[^>]*>[\s\S]*?", RegexOptions.Multiline); 77 | MatchCollection matches1 = re.Matches(Html); 78 | string ftr = matches1[0].Value; 79 | string f1 = ftr.Substring(ftr.IndexOf("") - ftr.IndexOf("') + 1); 81 | string arr11 = UserName = f1.Substring(f1.IndexOf("data-username")).ToString(); 82 | UserName = arr11.ToString().Substring(0, arr11.IndexOf(' ')).ToString(); 83 | UserName= UserName.Substring(UserName.IndexOf('@')); 84 | UserName = UserName.Replace("\\", "").ToString().Replace("\""," "); 85 | return UserName; 86 | } 87 | catch (Exception ex) 88 | { 89 | return GroupNickName; 90 | } 91 | } 92 | 93 | 94 | 95 | public static string GetGroupInfoBySay(string html) 96 | { 97 | return ""; 98 | 99 | } 100 | 101 | 102 | /// 测试. 103 | /// 104 | public void Test() 105 | { 106 | string pageURL = "http://www.google.com.hk/search?hl=zh-CN&source=hp&q=%E5%8D%9A%E6%B1%87%E6%95%B0%E7%A0%81&aq=f&aqi=g2&aql=&oq=&gs_rfai="; 107 | Uri uri = new Uri(pageURL); 108 | string queryString = uri.Query; 109 | NameValueCollection col = GetQueryString(queryString); 110 | string searchKey = col["q"]; 111 | //结果 searchKey = "博汇数码" 112 | } 113 | 114 | /// 115 | /// 将查询字符串解析转换为名值集合. 116 | /// 117 | /// 118 | /// 119 | public static NameValueCollection GetQueryString(string queryString) 120 | { 121 | return GetQueryString(queryString, null, true); 122 | } 123 | 124 | /// 125 | /// 将查询字符串解析转换为名值集合. 126 | /// 127 | /// 128 | /// 129 | /// 130 | /// 131 | public static NameValueCollection GetQueryString(string queryString, Encoding encoding, bool isEncoded) 132 | { 133 | queryString = queryString.Replace("?", ""); 134 | NameValueCollection result = new NameValueCollection(StringComparer.OrdinalIgnoreCase); 135 | if (!string.IsNullOrEmpty(queryString)) 136 | { 137 | int count = queryString.Length; 138 | for (int i = 0; i < count; i++) 139 | { 140 | int startIndex = i; 141 | int index = -1; 142 | while (i < count) 143 | { 144 | char item = queryString[i]; 145 | if (item == '=') 146 | { 147 | if (index < 0) 148 | { 149 | index = i; 150 | } 151 | } 152 | else if (item == '&') 153 | { 154 | break; 155 | } 156 | i++; 157 | } 158 | string key = null; 159 | string value = null; 160 | if (index >= 0) 161 | { 162 | key = queryString.Substring(startIndex, index - startIndex); 163 | value = queryString.Substring(index + 1, (i - index) - 1); 164 | } 165 | else 166 | { 167 | key = queryString.Substring(startIndex, i - startIndex); 168 | } 169 | if (isEncoded) 170 | { 171 | result[MyUrlDeCode(key, encoding)] = MyUrlDeCode(value, encoding); 172 | } 173 | else 174 | { 175 | result[key] = value; 176 | } 177 | if ((i == (count - 1)) && (queryString[i] == '&')) 178 | { 179 | result[key] = string.Empty; 180 | } 181 | } 182 | } 183 | return result; 184 | } 185 | 186 | /// 187 | /// 解码URL. 188 | /// 189 | /// null为自动选择编码 190 | /// 191 | /// 192 | public static string MyUrlDeCode(string str, Encoding encoding) 193 | { 194 | if (encoding == null) 195 | { 196 | Encoding utf8 = Encoding.UTF8; 197 | //首先用utf-8进行解码 198 | string code = HttpUtility.UrlDecode(str.ToUpper(), utf8); 199 | //将已经解码的字符再次进行编码. 200 | string encode = HttpUtility.UrlEncode(code, utf8).ToUpper(); 201 | if (str == encode) 202 | encoding = Encoding.UTF8; 203 | else 204 | encoding = Encoding.GetEncoding("gb2312"); 205 | } 206 | return HttpUtility.UrlDecode(str, encoding); 207 | } 208 | 209 | 210 | 211 | } 212 | } 213 | -------------------------------------------------------------------------------- /common/Log.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace Browserform 10 | { 11 | class Log : TraceListener 12 | { 13 | string logPath = System.Environment.CurrentDirectory + "/log/formlog.txt"; 14 | public override void Write(string message) 15 | { 16 | File.AppendAllText(logPath, message); 17 | } 18 | 19 | public override void WriteLine(string message) 20 | { 21 | File.AppendAllText(logPath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + message + Environment.NewLine); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /common/Noumenon.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Browserform.common 8 | { 9 | public class Noumenon 10 | { 11 | } 12 | /// 13 | /// 请求群组列表消息实体 14 | /// 15 | public class Noumenon_GetGroupUser 16 | { 17 | private string _ToUserName = ""; 18 | private string _Url = ""; 19 | private string _PostData = ""; 20 | private string _FromUserName = ""; 21 | /// 22 | /// 要请求的群组的UserName 包含“@@”de的UserName 23 | /// 24 | public string ToUserName { get => _ToUserName; set => _ToUserName = value; } 25 | 26 | /// 27 | /// 请求的User地址 28 | /// 29 | public string Url { get => _Url; set => _Url = value; } 30 | 31 | /// 32 | /// 要发送的实体数据 33 | /// 34 | public string PostData { get => _PostData; set => _PostData = value; } 35 | 36 | /// 37 | /// 来自哪里的消息 38 | /// 39 | public string FromUserName { get => _FromUserName; set => _FromUserName = value; } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /common/Record.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Browserform 8 | { 9 | public class Record 10 | { 11 | public string MyNick { get; set; } 12 | 13 | public string ChatNick { get; set; } 14 | public List MessageList { get; set; } 15 | } 16 | 17 | public class MessageInfo 18 | { 19 | // 每条消息有一个好友昵称 20 | public string FriendNick { get; set; } 21 | public string Content { get; set; } 22 | 23 | public int MessageType { get; set; } 24 | 25 | public string time { get; set; } 26 | 27 | //public bool IsGroup { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /common/SetStyle.cs: -------------------------------------------------------------------------------- 1 | using CefSharp.WinForms; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Browserform.common 9 | { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /common/SocketClientManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Net.Sockets; 6 | using System.Text; 7 | using System.Threading; 8 | using System.Threading.Tasks; 9 | 10 | namespace Browserform.common 11 | { 12 | public class SocketClientManager 13 | { 14 | public Socket _socket = null; 15 | public EndPoint endPoint = null; 16 | public SocketInfo socketInfo = null; 17 | public bool _isConnected = false; 18 | 19 | public delegate void OnConnectedHandler(); 20 | public event OnConnectedHandler OnConnected; 21 | public event OnConnectedHandler OnFaildConnect; 22 | public delegate void OnReceiveMsgHandler(); 23 | public event OnReceiveMsgHandler OnReceiveMsg; 24 | 25 | public SocketClientManager(string ip, int port) 26 | { 27 | IPAddress _ip = IPAddress.Parse(ip); 28 | endPoint = new IPEndPoint(_ip, port); 29 | _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 30 | } 31 | 32 | public void Start() 33 | { 34 | _socket.BeginConnect(endPoint, ConnectedCallback, _socket); 35 | _isConnected = true; 36 | Thread socketClient = new Thread(SocketClientReceive); 37 | socketClient.IsBackground = true; 38 | socketClient.Start(); 39 | } 40 | 41 | public void SocketClientReceive() 42 | { 43 | while (_isConnected) 44 | { 45 | SocketInfo info = new SocketInfo(); 46 | try 47 | { 48 | _socket.BeginReceive(info.buffer, 0, info.buffer.Length, SocketFlags.None, ReceiveCallback, info); 49 | } 50 | catch (SocketException ex) 51 | { 52 | _isConnected = false; 53 | } 54 | 55 | Thread.Sleep(100); 56 | } 57 | } 58 | 59 | public void ReceiveCallback(IAsyncResult ar) 60 | { 61 | socketInfo = ar.AsyncState as SocketInfo; 62 | if (this.OnReceiveMsg != null) OnReceiveMsg(); 63 | } 64 | 65 | public void ConnectedCallback(IAsyncResult ar) 66 | { 67 | Socket socket = ar.AsyncState as Socket; 68 | if (socket.Connected) 69 | { 70 | if (this.OnConnected != null) OnConnected(); 71 | } 72 | else 73 | { 74 | if (this.OnFaildConnect != null) OnFaildConnect(); 75 | } 76 | } 77 | 78 | public void SendMsg(string msg) 79 | { 80 | byte[] buffer = Encoding.UTF8.GetBytes(msg); 81 | _socket.Send(buffer); 82 | } 83 | 84 | public class SocketInfo 85 | { 86 | public Socket socket = null; 87 | public byte[] buffer = null; 88 | 89 | public SocketInfo() 90 | { 91 | buffer = new byte[1024 * 4]; 92 | } 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /common/UserMessage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Browserform.common 9 | { 10 | /// 11 | /// 用户消息 12 | /// 13 | public class UserMessage 14 | { 15 | //发送消息url 16 | private static string _sendmsg_url = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg?sid="; 17 | public string SendMsg(WxMsgParsed info, CookieContainer CookiesContainer, WXMsg_Message msg, bool showOnly) 18 | { 19 | //发送 20 | if (!showOnly) 21 | { 22 | return SendMsg(info,CookiesContainer, msg.Msg, msg.From, msg.To, msg.Type); 23 | } 24 | return ""; 25 | } 26 | /// 27 | /// 发送消息 28 | /// 29 | /// 30 | /// 31 | /// 32 | /// 33 | public string SendMsg(WxMsgParsed info, CookieContainer CookiesContainer, string msg, string from, string to, int type) 34 | { 35 | string Msg_Result = String.Empty; 36 | string SKey =info.SKey; 37 | string Pass_Ticket = info.Pass_Ticket; 38 | string sid = info.Sid; 39 | string uin = info.Uin; 40 | 41 | // Console.WriteLine("发送消息:" + DateTime.Now.ToString()); 42 | string msg_json = "{{" + 43 | "\"BaseRequest\":{{" + 44 | "\"DeviceID\" : \"e441551176\"," + 45 | "\"Sid\" : \"{0}\"," + 46 | "\"Skey\" : \"{6}\"," + 47 | "\"Uin\" : \"{1}\"" + 48 | "}}," + 49 | "\"Msg\" : {{" + 50 | "\"ClientMsgId\" : {8}," + 51 | "\"Content\" : \"{2}\"," + 52 | "\"FromUserName\" : \"{3}\"," + 53 | "\"LocalID\" : {9}," + 54 | "\"ToUserName\" : \"{4}\"," + 55 | "\"Type\" : {5}" + 56 | "}}," + 57 | "\"rr\" : {7}" + 58 | "}}"; 59 | 60 | 61 | 62 | if (sid != null && uin != null) 63 | { 64 | msg_json = string.Format(msg_json, sid, uin, msg, from, to, type, SKey, DateTime.Now.Millisecond, DateTime.Now.Millisecond, DateTime.Now.Millisecond); 65 | 66 | byte[] bytes = BaseService.SendPostRequest(CookiesContainer,_sendmsg_url + sid + "&lang=zh_CN&pass_ticket=" +Pass_Ticket, msg_json); 67 | 68 | Msg_Result = Encoding.UTF8.GetString(bytes); 69 | } 70 | return Msg_Result; 71 | } 72 | 73 | } 74 | /// 75 | /// 微信消息 76 | /// 77 | public class WXMsg_Message 78 | { 79 | /// 80 | /// 消息发送方 81 | /// 82 | public string From 83 | { 84 | get; 85 | set; 86 | } 87 | /// 88 | /// 消息接收方 89 | /// 90 | public string To 91 | { 92 | set; 93 | get; 94 | } 95 | /// 96 | /// 消息发送时间 97 | /// 98 | public DateTime Time 99 | { 100 | get; 101 | set; 102 | } 103 | /// 104 | /// 是否已读 105 | /// 106 | public bool Readed 107 | { 108 | get; 109 | set; 110 | } 111 | /// 112 | /// 消息内容 113 | /// 114 | public string Msg 115 | { 116 | get; 117 | set; 118 | } 119 | /// 120 | /// 消息类型 121 | /// 122 | public int Type 123 | { 124 | get; 125 | set; 126 | } 127 | } 128 | 129 | /// 130 | /// 消息体参数 131 | /// 132 | public class WxMsgParsed 133 | { 134 | private string sKey = ""; 135 | private string pass_Ticket = ""; 136 | private string sid = ""; 137 | private string uin = ""; 138 | 139 | public string SKey { get => sKey; set => sKey = value; } 140 | public string Pass_Ticket { get => pass_Ticket; set => pass_Ticket = value; } 141 | public string Sid { get => sid; set => sid = value; } 142 | public string Uin { get => uin; set => uin = value; } 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /common/WXMsg.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Browserform.common 8 | { 9 | #region 微信消息体 10 | /// 11 | /// WeChat msg 12 | /// 13 | public class WXMsg 14 | { 15 | //正常返回结果 16 | private string Re_0 = "window.synccheck={ retcode: \"0\",selector: \"0\"}"; 17 | //发送消息返回结果 18 | private string Re_2 = "window.synccheck={ retcode: \"0\",selector: \"2\"}"; 19 | //朋友圈有动态 20 | private string Re_4 = "window.synccheck={ retcode: \"0\",selector: \"4\"}"; 21 | //有消息返回结果 22 | private string Re_6 = "window.synccheck={ retcode: \"0\",selector: \"6\"}"; 23 | } 24 | /// 25 | /// 接收的消息类型 26 | /// 27 | public enum WxMsg_Type 28 | { 29 | /// 30 | /// 文字消息 31 | /// 32 | type_1=1, 33 | 34 | /// 35 | ///消息类型未知? 36 | /// 37 | type_2=2, 38 | 39 | /// 40 | /// 图片消息 41 | /// 42 | type_3=3, 43 | 44 | 45 | 46 | 47 | //10000为系统消息。 48 | } 49 | 50 | /// 51 | /// 指定要跳过的消息类型 52 | /// 53 | public enum WxMsg_Type_Neglect 54 | { 55 | /// 56 | /// 分享消息 57 | /// 58 | type_49 = 49, 59 | 60 | 61 | /// 62 | /// 语音消息 63 | /// 64 | type_34 = 34, 65 | 66 | 67 | /// 68 | /// 自定义动画 69 | /// 70 | type_47 = 47, 71 | } 72 | 73 | #endregion 74 | 75 | #region 微信组列表 76 | 77 | #endregion 78 | 79 | #region 微信组消息 80 | /// 81 | /// 微信组消息 82 | /// 83 | [Serializable()] 84 | public class WxGroupMsg 85 | { 86 | private BaseRequest _BaseRequest; 87 | public BaseRequest BaseRequest { get => _BaseRequest; set => _BaseRequest = value; } 88 | 89 | private Msg _Msg; 90 | public Msg Msg { get => _Msg; set => _Msg = value; } 91 | 92 | private string _Scene = ""; 93 | public string Scene { get => _Scene; set => _Scene = value; } 94 | } 95 | 96 | 97 | /// 98 | /// 微信组消息 - 消息体 登录状态参数 99 | /// 100 | public class BaseRequest { 101 | public string Uin = ""; 102 | public string Sid = ""; 103 | public string Skey = ""; 104 | public string DeviceID = ""; 105 | } 106 | 107 | 108 | 109 | /// 110 | /// 微信组消息 - 消息体 - 详细 111 | /// 112 | public class Msg 113 | { 114 | public string Type = ""; 115 | public string Content = ""; 116 | public string FromUserName = ""; 117 | /// 118 | /// 微信组Username 119 | /// 120 | public string ToUserName = ""; 121 | public string LocalID = ""; 122 | public string ClientMsgId = ""; 123 | } 124 | #endregion 125 | 126 | #region 微信组成员 127 | /// 128 | /// 微信群组成员 129 | /// 130 | [Serializable()] 131 | public class WxGroupContact 132 | { 133 | private BaseResponse _BaseResponse; 134 | /// 135 | /// 返回信息 136 | /// 137 | public BaseResponse BaseResponse { get => _BaseResponse; set => _BaseResponse = value; } 138 | 139 | 140 | private ContactList _ContactList; 141 | /// 142 | /// 返回的群组成员 143 | /// 144 | public ContactList ContactList { get => _ContactList; set => _ContactList = value; } 145 | 146 | 147 | private int _Count = 0; 148 | /// 149 | /// 返回的群组成员个数 150 | /// 151 | public int Count { get => _Count; set => _Count = value; } 152 | 153 | } 154 | /// 155 | /// 返回信息 156 | /// 157 | [Serializable()] 158 | public class BaseResponse 159 | { 160 | private string _Ret = ""; 161 | /// 162 | /// 返回状态 163 | /// 164 | public string Ret { get => _Ret; set => _Ret = value; } 165 | 166 | private string _ErrMsg = ""; 167 | /// 168 | /// 错误消息 169 | /// 170 | public string ErrMsg { get => _ErrMsg; set => _ErrMsg = value; } 171 | 172 | 173 | } 174 | /// 175 | /// 返回的群组成员 176 | /// 177 | [Serializable()] 178 | public class ContactList { 179 | private int _Uin =0; 180 | private string _UserName = ""; 181 | private string _NickName = ""; 182 | private string _HeadImgUrl = ""; 183 | private int _MemberCount = 0; 184 | private MemberList _memberList=new MemberList(); 185 | private int _ContactFlag = 0; 186 | /// 187 | ///群组 Uin ID 188 | /// 189 | public int Uin { get => _Uin; set => _Uin = value; } 190 | /// 191 | ///群组 UserName 192 | /// 193 | public string UserName { get => _UserName; set => _UserName = value; } 194 | /// 195 | /// 群组昵称 196 | /// 197 | public string NickName { get => _NickName; set => _NickName = value; } 198 | /// 199 | /// 群组 头像路径 200 | /// 201 | public string HeadImgUrl { get => _HeadImgUrl; set => _HeadImgUrl = value; } 202 | 203 | /// 204 | /// 群组 成员个数 205 | /// 206 | public int MemberCount { get => _MemberCount; set => _MemberCount = value; } 207 | /// 208 | /// 标识 209 | /// 210 | public int ContactFlag { get => _ContactFlag; set => _ContactFlag = value; } 211 | public string RemarkName { get => _RemarkName; set => _RemarkName = value; } 212 | public int HideInputBarFlag { get => _HideInputBarFlag; set => _HideInputBarFlag = value; } 213 | public int Sex { get => _Sex; set => _Sex = value; } 214 | public string Signature { get => _Signature; set => _Signature = value; } 215 | public int VerifyFlag { get => _VerifyFlag; set => _VerifyFlag = value; } 216 | public int OwnerUin { get => _OwnerUin; set => _OwnerUin = value; } 217 | public string PYInitial { get => _PYInitial; set => _PYInitial = value; } 218 | public string PYQuanPin { get => _PYQuanPin; set => _PYQuanPin = value; } 219 | public string RemarkPYInitial { get => _RemarkPYInitial; set => _RemarkPYInitial = value; } 220 | public string RemarkPYQuanPin { get => _RemarkPYQuanPin; set => _RemarkPYQuanPin = value; } 221 | public int StarFriend { get => _StarFriend; set => _StarFriend = value; } 222 | public int AppAccountFlag { get => _AppAccountFlag; set => _AppAccountFlag = value; } 223 | public int Statues { get => _Statues; set => _Statues = value; } 224 | public int AttrStatus { get => _AttrStatus; set => _AttrStatus = value; } 225 | public string Province { get => _Province; set => _Province = value; } 226 | public string City { get => _City; set => _City = value; } 227 | public string Alias { get => _Alias; set => _Alias = value; } 228 | public int SnsFlag { get => _SnsFlag; set => _SnsFlag = value; } 229 | public int UniFriend { get => _UniFriend; set => _UniFriend = value; } 230 | public string DisplayName { get => _DisplayName; set => _DisplayName = value; } 231 | public int ChatRoomId { get => _ChatRoomId; set => _ChatRoomId = value; } 232 | public string KeyWord { get => _KeyWord; set => _KeyWord = value; } 233 | public string EncryChatRoomId { get => _EncryChatRoomId; set => _EncryChatRoomId = value; } 234 | public int IsOwner { get => _IsOwner; set => _IsOwner = value; } 235 | public MemberList MemberList { get => _memberList; set => _memberList = value; } 236 | 237 | private string _RemarkName = ""; 238 | private int _HideInputBarFlag = 0; 239 | private int _Sex = 0; 240 | private string _Signature = ""; 241 | private int _VerifyFlag = 0; 242 | private int _OwnerUin = 0; 243 | private string _PYInitial = ""; 244 | private string _PYQuanPin = ""; 245 | private string _RemarkPYInitial = ""; 246 | private string _RemarkPYQuanPin = ""; 247 | private int _StarFriend = 0; 248 | private int _AppAccountFlag = 0; 249 | private int _Statues = 0; 250 | private int _AttrStatus = 0; 251 | private string _Province = ""; 252 | private string _City = ""; 253 | private string _Alias = ""; 254 | private int _SnsFlag = 0; 255 | private int _UniFriend = 0; 256 | private string _DisplayName = ""; 257 | private int _ChatRoomId = 0; 258 | private string _KeyWord = ""; 259 | private string _EncryChatRoomId = ""; 260 | private int _IsOwner = 0; 261 | 262 | 263 | 264 | } 265 | [Serializable] 266 | public class MemberList 267 | { 268 | private int _Uin = 0; 269 | private string _UserName = ""; 270 | private string _NickName = ""; 271 | private string _AttrStatus = ""; 272 | private string _PYInitial = ""; 273 | private string _PYQuanPin = ""; 274 | private string _RemarkPYInitial = ""; 275 | private string _RemarkPYQuanPin = ""; 276 | private int _MemberStatus = 0; 277 | private string _DisplayName = ""; 278 | private string _KeyWord = ""; 279 | 280 | 281 | public string UserName { get => _UserName; set => _UserName = value; } 282 | public string NickName { get => _NickName; set => _NickName = value; } 283 | public string AttrStatus { get => _AttrStatus; set => _AttrStatus = value; } 284 | public string PYInitial { get => _PYInitial; set => _PYInitial = value; } 285 | public string PYQuanPin { get => _PYQuanPin; set => _PYQuanPin = value; } 286 | public string RemarkPYInitial { get => _RemarkPYInitial; set => _RemarkPYInitial = value; } 287 | public string RemarkPYQuanPin { get => _RemarkPYQuanPin; set => _RemarkPYQuanPin = value; } 288 | public string DisplayName { get => _DisplayName; set => _DisplayName = value; } 289 | public string KeyWord { get => _KeyWord; set => _KeyWord = value; } 290 | public int Uin { get => _Uin; set => _Uin = value; } 291 | public int MemberStatus { get => _MemberStatus; set => _MemberStatus = value; } 292 | 293 | /// 294 | /// 当前群组成员 所属群组的UserNmae 295 | /// 296 | public string GroupUserName = ""; 297 | /// 298 | /// 当前群组成员 所属群组的NickName 299 | /// 300 | public string GroupNickName = ""; 301 | 302 | } 303 | 304 | /// 305 | /// 群组UserName 和 群组NickName 306 | /// 307 | public class GroupUserAndNickName { 308 | 309 | private string _userName = ""; 310 | 311 | private string _nickName = ""; 312 | /// 313 | /// 群组 UserName 314 | /// 315 | public string UserName { get => _userName; set => _userName = value; } 316 | /// 317 | /// 群组 NickName 318 | /// 319 | public string NickName { get => _nickName; set => _nickName = value; } 320 | } 321 | #endregion 322 | } 323 | -------------------------------------------------------------------------------- /common/WeChatGroup.cs: -------------------------------------------------------------------------------- 1 | using MyDB; 2 | using Newtonsoft.Json; 3 | using Newtonsoft.Json.Linq; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace Browserform.common 11 | { 12 | /// 13 | /// 群组 操作类 14 | /// 15 | public class WeChatGroup 16 | { 17 | public WeChatGroup() 18 | { } 19 | 20 | /// 21 | /// 添加 群组里的群组成员 好友 22 | /// 23 | /// 添加 的信息 24 | /// Cookie 25 | /// 新老微信标识 老微信 1 新微信 2 26 | /// 27 | public JObject AddGroupUser(AddGroupUser info, System.Net.CookieContainer myCookiesContainer, int wxorwx2) 28 | { 29 | string url = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxverifyuser?r=" + info.R + "&lang=zh_CN&pass_ticket=" 30 | + info.pass_ticket; 31 | if (wxorwx2 == 1)//老微信 32 | { 33 | url = "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxverifyuser?r=" + info.R + "&lang=zh_CN&pass_ticket=" + info.pass_ticket; 34 | } 35 | JObject job = null; 36 | string postdate = String.Empty; 37 | string add1 = "{\"BaseRequest\":{\"Uin\":" + info.Uin + ",\"Sid\":\"" + info.Sid + "\",\"Skey\":\"" + info.Skey + "\","; 38 | string add2 = "\"DeviceID\":\"" + info.DeviceID + "\"},\"Opcode\":2,\"VerifyUserListSize\":1,\"VerifyUserList\":"; 39 | string add3 = "[{\"Value\":\"" + info.Value + "\",\"VerifyUserTicket\":\"\"}],"; 40 | string add4 = "\"VerifyContent\":\"" + info.VerifyContent + "\",\"SceneListCount\":1,\"SceneList\":[33],\"skey\":\"" + info.Skey + "\"}"; 41 | postdate = add1 + add2 + add3 + add4; 42 | if (wxorwx2 == 1) 43 | { 44 | job = WXService.SendPostRequest_Old(url, postdate, myCookiesContainer); 45 | } 46 | else 47 | { 48 | job = WXService.SendPostRequest(url, postdate, myCookiesContainer); 49 | } 50 | return job; 51 | } 52 | 53 | 54 | /// 55 | /// 获得请求群组的信息 56 | /// 57 | /// 58 | /// 59 | /// 60 | public common.Noumenon_GetGroupUser GetGroupInfo(string GroupUserName, System.Net.CookieContainer myCookiesContainer, int wxorwx2, LoginRedirectResult loginRedirectResult) 61 | { 62 | string post_Uin = loginRedirectResult.wxuin; 63 | string post_Sid = loginRedirectResult.wxsid; 64 | string post_Skey = loginRedirectResult.skey; 65 | string post_DeviceID = CreateNewDeviceID(); 66 | string post_GroupName = GroupUserName; 67 | string ur1l = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r="; 68 | if (wxorwx2 == 1) 69 | { 70 | ur1l = "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r="; 71 | } 72 | else 73 | { 74 | ur1l = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r="; 75 | } 76 | 77 | common.Noumenon_GetGroupUser info = new common.Noumenon_GetGroupUser(); 78 | info.Url = String.Format(ur1l + "{0}&lang=zh_CN&pass_ticket={1}", getR().ToString(), loginRedirectResult.pass_ticket); 79 | info.ToUserName = GroupUserName; 80 | info.PostData = "{\"BaseRequest\":{\"Uin\":" + post_Uin + ",\"Sid\":\"" + post_Sid + "\",\"Skey\":\"" + post_Skey + "\",\"DeviceID\":\"" + post_DeviceID + "\"},\"Count\":1,\"List\":[{\"UserName\":\"" + GroupUserName + "\",\"EncryChatRoomId\":\"" + "" + "\"}]}"; 81 | return info; 82 | } 83 | 84 | 85 | public List GetALLUser(common.Noumenon_GetGroupUser info, int WxorWx2, System.Net.CookieContainer myCookieContainer) 86 | { 87 | List Group_MemberList = new List(); 88 | string froupname = info.ToUserName; 89 | JObject job = new JObject(); 90 | if (WxorWx2 == 1) //老微信 91 | { 92 | job = common.WXService.SendPostRequest_Old(info.Url, info.PostData, myCookieContainer); 93 | } 94 | if (WxorWx2 == 2) //新微信 95 | { 96 | job = common.WXService.SendPostRequest(info.Url, info.PostData, myCookieContainer); 97 | } 98 | try 99 | { 100 | var BaseResponse = job["BaseResponse"]; 101 | var Count = job["Count"]; 102 | var ContactList = job["ContactList"]; 103 | var arr = ContactList.Last.ToString(); 104 | JObject json1 = (JObject)JsonConvert.DeserializeObject(arr); 105 | JArray MemberList = (JArray)json1["MemberList"]; 106 | for (int i = 0; i < MemberList.Count; i++) 107 | { 108 | common.MemberList infoM = new common.MemberList(); 109 | infoM.UserName = MemberList[i]["UserName"].ToString(); 110 | infoM.NickName = MemberList[i]["NickName"].ToString(); 111 | infoM.GroupUserName = froupname; 112 | if (!Group_MemberList.Contains(infoM)) 113 | Group_MemberList.Add(infoM); 114 | } 115 | } 116 | catch (Exception ex) 117 | { 118 | return null; 119 | } 120 | return Group_MemberList; 121 | } 122 | 123 | 124 | long getR() 125 | { 126 | TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); 127 | return Convert.ToInt64(ts.TotalMilliseconds); 128 | } 129 | 130 | private static string CreateNewDeviceID() 131 | { 132 | Random ran = new Random(); 133 | int rand1 = ran.Next(10000, 99999); 134 | int rand2 = ran.Next(10000, 99999); 135 | int rand3 = ran.Next(10000, 99999); 136 | return string.Format("e{0}{1}{2}", rand1, rand2, rand3); 137 | } 138 | } 139 | public class AddGroupUser 140 | { 141 | /// 142 | /// 当前微信唯一标识 143 | /// 144 | public string Uin = ""; 145 | /// 146 | /// Sid 147 | /// 148 | public string Sid = ""; 149 | /// 150 | /// Skey 151 | /// 152 | public string Skey = ""; 153 | /// 154 | /// 要添加的人的UserName 155 | /// 156 | public string Value = ""; 157 | 158 | /// 159 | /// 要添加的群好友的 昵称 160 | /// 161 | public string NickName = ""; 162 | /// 163 | /// 登录设备 164 | /// 165 | public string DeviceID = ""; 166 | /// 167 | /// 验证消息 168 | /// 169 | public string VerifyContent = ""; 170 | 171 | /// 172 | /// pass_ticket 173 | /// 174 | public string pass_ticket = ""; 175 | 176 | /// 177 | /// 时间戳 178 | /// 179 | public long R; 180 | 181 | 182 | 183 | } 184 | } 185 | -------------------------------------------------------------------------------- /common/Xml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Forms; 8 | using System.Xml; 9 | 10 | namespace Browserform 11 | { 12 | //XML和文件处理工具类 13 | public class Xml 14 | { 15 | //系统配置文件 16 | public static string CONFIG_FILE = "System.xml"; 17 | 18 | /// 19 | /// 得到程序工作目录 20 | /// 21 | /// 22 | public static string GetWorkDirectory() 23 | { 24 | try 25 | { 26 | return Path.GetDirectoryName(typeof(Xml).Assembly.Location); 27 | } 28 | catch 29 | { 30 | return Environment.CurrentDirectory; 31 | } 32 | } 33 | 34 | /// 35 | /// 判断字符串是否为空串 36 | /// 37 | /// 目标字符串 38 | /// true:为空串;false:非空串 39 | public static bool IsEmptyString(string szString) 40 | { 41 | if (szString == null) 42 | return true; 43 | if (szString.Trim() == string.Empty) 44 | return true; 45 | return false; 46 | } 47 | 48 | 49 | /// 50 | /// 从配置文件获取服务器地址 51 | /// 52 | /// 53 | public static string GetServerUrl() 54 | { 55 | string url = ""; 56 | string szConfigFile = string.Format("{0}\\{1}", GetWorkDirectory(), CONFIG_FILE); 57 | if (!File.Exists(szConfigFile)) 58 | { 59 | if (!CreateXmlFile(szConfigFile, "System")) 60 | throw new Exception("配置文件不存在"); 61 | } 62 | XmlDocument XmlDoc = GetXmlDocument(szConfigFile); 63 | XmlNode rootXml = XmlDoc.SelectSingleNode("System"); 64 | 65 | foreach (XmlNode xn in rootXml.ChildNodes) 66 | { 67 | if (xn.Name == "Server") 68 | { 69 | XmlElement ee = (XmlElement)xn.ChildNodes[0]; 70 | url = ee.GetAttribute("url"); 71 | } 72 | } 73 | return url; 74 | } 75 | 76 | 77 | /// 78 | /// 初始化配置文件 79 | /// 80 | /// XML文件 81 | /// 根节点名 82 | /// bool 83 | public static bool CreateXmlFile(string szFileName, string szRootName) 84 | { 85 | if (szFileName == null || szFileName.Trim() == "") 86 | return false; 87 | if (szRootName == null || szRootName.Trim() == "") 88 | return false; 89 | 90 | XmlDocument clsXmlDoc = new XmlDocument(); 91 | clsXmlDoc.AppendChild(clsXmlDoc.CreateXmlDeclaration("1.0", "GBK", null)); 92 | clsXmlDoc.AppendChild(clsXmlDoc.CreateNode(XmlNodeType.Element, szRootName, "")); 93 | 94 | XmlNode userconfigNode = clsXmlDoc.SelectSingleNode(szRootName); 95 | userconfigNode.AppendChild(clsXmlDoc.CreateNode(XmlNodeType.Element, "Server", "")); 96 | 97 | XmlNode appSettingNode = userconfigNode.SelectSingleNode("Server"); 98 | XmlElement xe = clsXmlDoc.CreateElement("key"); 99 | xe.SetAttribute("url", "https://ds.mrray.cn/"); 100 | appSettingNode.AppendChild(xe); 101 | 102 | try 103 | { 104 | clsXmlDoc.Save(szFileName); 105 | return true; 106 | } 107 | catch 108 | { 109 | return false; 110 | } 111 | } 112 | 113 | 114 | /// 115 | /// 从XML文件获取对应的XML文档对象 116 | /// 117 | /// XML文件 118 | /// XML文档对象 119 | public static XmlDocument GetXmlDocument(string szXmlFile) 120 | { 121 | if (IsEmptyString(szXmlFile)) 122 | return null; 123 | if (!File.Exists(szXmlFile)) 124 | return null; 125 | XmlDocument clsXmlDoc = new XmlDocument(); 126 | try 127 | { 128 | clsXmlDoc.Load(szXmlFile); 129 | } 130 | catch 131 | { 132 | return null; 133 | } 134 | return clsXmlDoc; 135 | } 136 | 137 | 138 | /// 139 | /// 将XML文档对象保存为XML文件 140 | /// 141 | /// XML文档对象 142 | /// XML文件 143 | /// bool:保存结果 144 | public static bool SaveXmlDocument(XmlDocument clsXmlDoc, string szXmlFile) 145 | { 146 | if (clsXmlDoc == null) 147 | return false; 148 | if (IsEmptyString(szXmlFile)) 149 | return false; 150 | try 151 | { 152 | if (File.Exists(szXmlFile)) 153 | File.Delete(szXmlFile); 154 | } 155 | catch 156 | { 157 | return false; 158 | } 159 | try 160 | { 161 | clsXmlDoc.Save(szXmlFile); 162 | } 163 | catch 164 | { 165 | return false; 166 | } 167 | return true; 168 | } 169 | 170 | 171 | 172 | 173 | 174 | 175 | public static string GetDevNum(int uuid) 176 | { 177 | try 178 | { 179 | string FilePath = string.Format("{0}\\{1}", Xml.GetWorkDirectory(), "设备号"); 180 | if (!Directory.Exists(FilePath)) 181 | { 182 | return ""; 183 | } 184 | //新建文本文件写入uuid和设备号 185 | string DevPath = string.Format("{0}\\{1}", FilePath, uuid.ToString()) + ".txt"; 186 | if (!File.Exists(DevPath)) 187 | { 188 | MessageBox.Show("不存在"); 189 | } 190 | return System.Text.Encoding.UTF8.GetString(File.ReadAllBytes(DevPath)); 191 | } 192 | catch (Exception ex) 193 | { 194 | return ""; 195 | } 196 | } 197 | } 198 | } 199 | -------------------------------------------------------------------------------- /common/ZipHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | using System.IO; 3 | 4 | namespace Browserform.common 5 | { 6 | /// 7 | /// 文件流压缩解压 8 | /// 9 | public class ZipHelper 10 | { 11 | //public static byte[] Compress(Stream Source) 12 | //{ 13 | //Debug.Assert(null != Source); 14 | //Source.Seek(0, SeekOrigin.Begin); 15 | //MemoryStream objMem = new MemoryStream(); 16 | //GZipOutputStream objGzip = new GZipOutputStream(objMem); 17 | 18 | //const int BUFFER_SIZE = 1024 * 10; 19 | //byte[] arrBuffer = new byte[BUFFER_SIZE]; 20 | //int nGetedCount = 0; 21 | //do 22 | //{ 23 | // nGetedCount = Source.Read(arrBuffer, 0, BUFFER_SIZE); 24 | // objGzip.Write(arrBuffer, 0, nGetedCount); 25 | //} while (nGetedCount > 0); 26 | //objGzip.Finish(); 27 | //byte[] arrResult = objMem.ToArray(); 28 | //objGzip.Close(); //压缩完成后,输出流就会被关闭 29 | //objGzip = null; 30 | //objMem.Close(); 31 | //objMem = null; 32 | //return arrResult; 33 | //} 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /common/bg1.js: -------------------------------------------------------------------------------- 1 | function SetBag() { 2 | document.getElementsByClassName('panel')[0].style.backgroundColor = '#b0b0b0'; 3 | // b.指定消息背景 4 | $('.chat_item.top').css('background', '#b0b0b0'); 5 | 6 | // 2. a.列表的边 7 | var arr = document.getElementsByClassName('chat_item'); 8 | for (var i = 0; i < arr.length; i++) 9 | { 10 | arr[i].style.borderBottomColor = '#808080'; 11 | }; 12 | $('.contact_list .contact_title').css('borderBottomColor', '#FFF'); 13 | 14 | // b .contact_list.contact_item 15 | $('.contact_list .contact_item').css('borderBottomColor', '#808080'); 16 | 17 | //3.分组标题栏 18 | $('.contact_list .contact_title').css('background', '#808080'); 19 | $('.contact_list .contact_title').css('color', '#FFF'); 20 | 21 | //4. 搜索框 22 | $('.search_bar .frm_search').css('background', '#808080'); 23 | 24 | //5. 选中底色 .chat_item.active 25 | //"$('.chat_item.active').css('background','#6AAEFF');" + 26 | //"$('.chat_item.inactive').css('background','#808080');" + 27 | 28 | //6. .tab .tab_item:after tab标题的右边框设置 29 | var style = document.createElement('style'); 30 | var text = document.createTextNode('.tab:after{content:none;border-bottom:1px solid red;}'); 31 | style.appendChild(text); 32 | document.body.appendChild(style); 33 | $('.tab').addClass('.tab:after'); 34 | 35 | //7. .tab_item 的边框颜色 36 | var style1 = document.createElement('style'); 37 | var text1 = document.createTextNode('.tab_item:after{content:none;}'); 38 | style.appendChild(text1); 39 | document.body.appendChild(style1); 40 | $('.tab_item').addClass('.tab:after'); 41 | } 42 | -------------------------------------------------------------------------------- /common/filtter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using CefSharp; 8 | 9 | namespace dpreview.Handler 10 | { 11 | public class AppendResponseFilter : IResponseFilter 12 | { 13 | private static Encoding encoding = Encoding.UTF8; 14 | 15 | 16 | 17 | public event Action VOIDFUN; 18 | private string _url; 19 | private string _type; 20 | public AppendResponseFilter(string url, string type) 21 | { 22 | _url = url; 23 | _type = type; 24 | 25 | } 26 | bool IResponseFilter.InitFilter() 27 | { 28 | return true; 29 | } 30 | FilterStatus IResponseFilter.Filter(Stream dataIn, out long dataInRead, Stream dataOut, out long dataOutWritten) 31 | { 32 | if (dataIn == null) 33 | { 34 | dataInRead = 0; 35 | dataOutWritten = 0; 36 | 37 | return FilterStatus.Done; 38 | } 39 | dataInRead = dataIn.Length; 40 | dataOutWritten = Math.Min(dataInRead, dataOut.Length); 41 | 42 | byte[] buffer = new byte[dataOutWritten]; 43 | int bytesRead = dataIn.Read(buffer, 0, (int)dataOutWritten); 44 | 45 | 46 | var s = System.Text.Encoding.UTF8.GetString(buffer); 47 | VOIDFUN?.BeginInvoke(s, _url, _type, dataInRead, null, null); 48 | dataOut.Write(buffer, 0, bytesRead); 49 | return FilterStatus.Done; 50 | } 51 | 52 | public void Dispose() 53 | { 54 | 55 | } 56 | 57 | #region 58 | public event Action NotifyData; 59 | private int contentLength = 0; 60 | public List dataAll = new List(); 61 | 62 | public void SetContentLength(int contentLength) 63 | { 64 | this.contentLength = contentLength; 65 | } 66 | #endregion 67 | } 68 | 69 | 70 | 71 | public class FilterManager 72 | { 73 | private static Dictionary dataList = new Dictionary(); 74 | 75 | public static IResponseFilter CreateFilter(string guid) 76 | { 77 | lock (dataList) 78 | { 79 | var filter = new AppendResponseFilter("",""); 80 | dataList.Add(guid, filter); 81 | 82 | return filter; 83 | } 84 | } 85 | 86 | public static IResponseFilter GetFileter(string guid) 87 | { 88 | lock (dataList) 89 | { 90 | return dataList[guid]; 91 | } 92 | } 93 | } 94 | } 95 | 96 | -------------------------------------------------------------------------------- /common/request.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Security.Cryptography.X509Certificates; 5 | using System.Text; 6 | using CefSharp; 7 | using dpreview.Handler; 8 | using Newtonsoft.Json; 9 | using Newtonsoft.Json.Linq; 10 | using System.IO; 11 | using System.Net; 12 | using System.Drawing; 13 | using System.Reflection; 14 | using System.Runtime.Serialization; 15 | using System.Runtime.Serialization.Json; 16 | 17 | namespace Browserform 18 | { 19 | public class CookieVisitor : ICookieVisitor 20 | { 21 | public event Action SendCookie; 22 | 23 | public void Dispose() 24 | { 25 | 26 | } 27 | 28 | public bool Visit(CefSharp.Cookie cookie, int count, int total, ref bool deleteCookie) 29 | { 30 | deleteCookie = false; 31 | if (SendCookie != null) 32 | { 33 | SendCookie(cookie); 34 | } 35 | return true; 36 | } 37 | } 38 | public class CookieMonster : ICookieVisitor 39 | { 40 | readonly List> cookies = new List>(); 41 | readonly Action>> useAllCookies; 42 | 43 | public CookieMonster(Action>> useAllCookies) 44 | { 45 | this.useAllCookies = useAllCookies; 46 | } 47 | 48 | public void Dispose() 49 | { 50 | throw new NotImplementedException(); 51 | } 52 | 53 | public bool Visit(CefSharp.Cookie cookie, int count, int total, ref bool deleteCookie) 54 | { 55 | cookies.Add(new Tuple(cookie.Name, cookie.Value)); 56 | 57 | if (count == total - 1) 58 | useAllCookies(cookies); 59 | 60 | return true; 61 | } 62 | } 63 | 64 | 65 | public class request : IRequestHandler 66 | { 67 | public event Action msg; 68 | public event Action msg2; 69 | public bool GetAuthCredentials(IWebBrowser browserControl, IBrowser browser, IFrame frame, bool isProxy, 70 | string host, int port, string realm, string scheme, IAuthCallback callback) 71 | { 72 | 73 | return false; 74 | } 75 | 76 | public IResponseFilter GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response) 77 | { 78 | 79 | if (response.MimeType.ToLower().IndexOf("text") > -1 || response.MimeType.ToLower().IndexOf("json") > -1) 80 | { 81 | 82 | var filter = new AppendResponseFilter(request.Url, response.MimeType); 83 | 84 | filter.VOIDFUN += Filter_VOIDFUN; 85 | return filter; 86 | } 87 | return null; 88 | 89 | } 90 | private void Filter_VOIDFUN(string arg1, string arg2, string arg3, long arg4) 91 | { 92 | msg2?.Invoke(arg1,arg2); 93 | } 94 | 95 | 96 | public bool OnBeforeBrowse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, 97 | bool isRedirect) 98 | { 99 | 100 | var m = request.Method; 101 | msg?.Invoke(request.Url); 102 | msg?.Invoke(m); 103 | if (request.Method == "POST") 104 | { 105 | using (var postData = request.PostData) 106 | { 107 | if (postData != null) 108 | { 109 | var elements = postData.Elements; 110 | 111 | var charSet = request.GetCharSet(); 112 | 113 | foreach (var element in elements) 114 | { 115 | if (element.Type == PostDataElementType.Bytes) 116 | { 117 | var body = element.GetBody(charSet); 118 | msg?.Invoke(body); 119 | } 120 | } 121 | } 122 | } 123 | } 124 | 125 | return false; 126 | } 127 | 128 | public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) 129 | { 130 | var m = request.Method; 131 | msg?.Invoke(request.Url); 132 | msg?.Invoke(m); 133 | if (request.Method == "POST") 134 | { 135 | using (var postData = request.PostData) 136 | { 137 | if (postData != null) 138 | { 139 | var elements = postData.Elements; 140 | 141 | var charSet = request.GetCharSet(); 142 | 143 | foreach (var element in elements) 144 | { 145 | if (element.Type == PostDataElementType.Bytes) 146 | { 147 | var body = element.GetBody(charSet); 148 | msg?.Invoke(body); 149 | } 150 | } 151 | } 152 | } 153 | } 154 | 155 | return CefReturnValue.Continue; 156 | } 157 | 158 | public bool OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) 159 | { 160 | return true; 161 | } 162 | 163 | public bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture) 164 | { 165 | return false; 166 | } 167 | 168 | public void OnPluginCrashed(IWebBrowser browserControl, IBrowser browser, string pluginPath) 169 | { 170 | 171 | } 172 | 173 | public bool OnProtocolExecution(IWebBrowser browserControl, IBrowser browser, string url) 174 | { 175 | return false; 176 | } 177 | 178 | public bool OnQuotaRequest(IWebBrowser browserControl, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) 179 | { 180 | return false; 181 | } 182 | 183 | public void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status) 184 | { 185 | 186 | } 187 | 188 | public void OnRenderViewReady(IWebBrowser browserControl, IBrowser browser) 189 | { 190 | 191 | } 192 | 193 | public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength) 194 | { 195 | 196 | } 197 | 198 | public void OnResourceRedirect(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, ref string newUrl) 199 | { 200 | 201 | } 202 | 203 | public void OnResourceRedirect(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, ref string newUrl) 204 | { 205 | 206 | } 207 | 208 | public bool OnResourceResponse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response) 209 | { 210 | return false; ; 211 | 212 | } 213 | 214 | public bool OnSelectClientCertificate(IWebBrowser browserControl, IBrowser browser, bool isProxy, string host, int port, X509Certificate2Collection certificates, ISelectClientCertificateCallback callback) 215 | { 216 | return true; 217 | } 218 | } 219 | } 220 | -------------------------------------------------------------------------------- /obj/Debug/Browserform.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Browserform.exe.config 2 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.exe 3 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.pdb 4 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Browserform.exe 5 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Browserform.pdb 6 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.csprojResolveAssemblyReference.cache 7 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.Properties.Resources.resources 8 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.csproj.GenerateResource.Cache 9 | C:\Users\hasee\Desktop\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.Form1.resources 10 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Browserform.exe.config 11 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Browserform.exe 12 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Browserform.pdb 13 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Newtonsoft.Json.dll 14 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\Newtonsoft.Json.xml 15 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\EntityFramework.dll 16 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\EntityFramework.SqlServer.dll 17 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\EntityFramework.xml 18 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Debug\EntityFramework.SqlServer.xml 19 | G:\AppContainer-master\AppContainer-master\bin\Browserform.exe.config 20 | G:\AppContainer-master\AppContainer-master\bin\Browserform.exe 21 | G:\AppContainer-master\AppContainer-master\bin\Browserform.pdb 22 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.csprojResolveAssemblyReference.cache 23 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.ChatRecord.resources 24 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.Form1.resources 25 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.Properties.Resources.resources 26 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.csproj.GenerateResource.Cache 27 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.exe 28 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Debug\Browserform.pdb 29 | H:\AppContainer-master\bin\Browserform.exe.config 30 | H:\AppContainer-master\bin\Browserform.exe 31 | H:\AppContainer-master\bin\Browserform.pdb 32 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.csprojResolveAssemblyReference.cache 33 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.ChatRecord.resources 34 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.Form1.resources 35 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.Properties.Resources.resources 36 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.csproj.GenerateResource.Cache 37 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.exe 38 | H:\AppContainer-master\Browserform\obj\Debug\Browserform.pdb 39 | G:\U盘备份\AppContainer-master\bin\Browserform.exe.config 40 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.exe 41 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.pdb 42 | G:\U盘备份\AppContainer-master\bin\Browserform.exe 43 | G:\U盘备份\AppContainer-master\bin\Browserform.pdb 44 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.csprojResolveAssemblyReference.cache 45 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.ChatRecord.resources 46 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.Form1.resources 47 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.Properties.Resources.resources 48 | G:\U盘备份\AppContainer-master\Browserform\obj\Debug\Browserform.csproj.GenerateResource.Cache 49 | G:\U盘备份\wechat\bin\Browserform.exe.config 50 | G:\U盘备份\wechat\bin\Browserform.exe 51 | G:\U盘备份\wechat\bin\Browserform.pdb 52 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.csprojResolveAssemblyReference.cache 53 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.ChatRecord.resources 54 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.Form1.resources 55 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.Properties.Resources.resources 56 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.csproj.GenerateResource.Cache 57 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.exe 58 | G:\U盘备份\wechat\Browserform\obj\Debug\Browserform.pdb 59 | C:\Users\lingdong\Desktop\wechat开发版\bin\Browserform.exe.config 60 | C:\Users\lingdong\Desktop\wechat开发版\bin\Browserform.exe 61 | C:\Users\lingdong\Desktop\wechat开发版\bin\Browserform.pdb 62 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.csprojResolveAssemblyReference.cache 63 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.ChatRecord.resources 64 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.Form1.resources 65 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.Properties.Resources.resources 66 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.csproj.GenerateResource.Cache 67 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.exe 68 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\Debug\Browserform.pdb 69 | -------------------------------------------------------------------------------- /obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /obj/Debug/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/Release/Browserform.ChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/Browserform.ChatRecord.resources -------------------------------------------------------------------------------- /obj/Release/Browserform.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/Browserform.Form1.resources -------------------------------------------------------------------------------- /obj/Release/Browserform.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/Browserform.Properties.Resources.resources -------------------------------------------------------------------------------- /obj/Release/Browserform.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Release\Browserform.ChatRecord.resources 2 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Release\Browserform.Form1.resources 3 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Release\Browserform.Properties.Resources.resources 4 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Release\Browserform.csproj.GenerateResource.Cache 5 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Release\Browserform.exe.config 6 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Release\Browserform.exe 7 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Release\Browserform.pdb 8 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Release\Newtonsoft.Json.dll 9 | G:\AppContainer-master\AppContainer-master\Browserform\bin\Release\Newtonsoft.Json.xml 10 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Release\Browserform.exe 11 | G:\AppContainer-master\AppContainer-master\Browserform\obj\Release\Browserform.pdb 12 | E:\Projects\custom_service_system\Browserform\obj\Release\Browserform.exe 13 | E:\Projects\custom_service_system\Browserform\obj\Release\Browserform.pdb 14 | -------------------------------------------------------------------------------- /obj/Release/Browserform.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/Browserform.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /obj/Release/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /obj/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.ChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.ChatRecord.resources -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.Form1.resources -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.Frm.FrmChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.Frm.FrmChatRecord.resources -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.Frm.FrmGroupUser.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.Frm.FrmGroupUser.resources -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.Frm.Test.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.Frm.Test.resources -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.Properties.Resources.resources -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 1f29ecb1ea56db940e77e073473b6664a41124ec 2 | -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.dll 2 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\Browserform.exe.config 3 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\Browserform.exe 4 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\Browserform.pdb 5 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.Core.dll 6 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.WinForms.dll 7 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\EntityFramework.dll 8 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\EntityFramework.SqlServer.dll 9 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\MyDB.dll 10 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\Newtonsoft.Json.dll 11 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\System.Data.SQLite.dll 12 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\MyDB.pdb 13 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.WinForms.pdb 14 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.WinForms.xml 15 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.pdb 16 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.xml 17 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.Core.pdb 18 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\CefSharp.Core.xml 19 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\EntityFramework.xml 20 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\EntityFramework.SqlServer.xml 21 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\Newtonsoft.Json.xml 22 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\bin\x64\Debug\System.Data.SQLite.xml 23 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.csprojResolveAssemblyReference.cache 24 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.ChatRecord.resources 25 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.Form1.resources 26 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.Properties.Resources.resources 27 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.csproj.GenerateResource.Cache 28 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.exe 29 | C:\Users\lingdong\Desktop\wechat开发版\Browserform\obj\x64\Debug\Browserform.pdb 30 | C:\Users\lingdong\Desktop\wechat开发版\bin\Browserform.exe.config 31 | C:\Users\lingdong\Desktop\wechat开发版\bin\Browserform.exe 32 | C:\Users\lingdong\Desktop\wechat开发版\bin\Browserform.pdb 33 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.csprojResolveAssemblyReference.cache 34 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.ChatRecord.resources 35 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.Form1.resources 36 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.Properties.Resources.resources 37 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.csproj.GenerateResource.Cache 38 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.exe 39 | E:\Projects\wechat_cefsharp\Browserform\obj\x64\Debug\Browserform.pdb 40 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.csprojResolveAssemblyReference.cache 41 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.ChatRecord.resources 42 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.Form1.resources 43 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.Properties.Resources.resources 44 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.csproj.GenerateResource.Cache 45 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.exe 46 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.pdb 47 | E:\Projects\custom_service_system\bin\Browserform.exe.config 48 | E:\Projects\custom_service_system\bin\Browserform.exe 49 | E:\Projects\custom_service_system\bin\Browserform.pdb 50 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.Frm.Test.resources 51 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.Frm.FrmChatRecord.resources 52 | E:\Projects\custom_service_system\Browserform\obj\x64\Debug\Browserform.Frm.FrmGroupUser.resources 53 | -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.exe -------------------------------------------------------------------------------- /obj/x64/Debug/Browserform.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/Browserform.pdb -------------------------------------------------------------------------------- /obj/x64/Debug/CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 2bde477710026299a5e55084c545738d7857f626 2 | -------------------------------------------------------------------------------- /obj/x64/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /obj/x64/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /obj/x64/Debug/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /obj/x64/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/x64/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/x64/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/x64/Debug/build.force: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Debug/build.force -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.ChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.ChatRecord.resources -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.Form1.resources -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.Frm.Test.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.Frm.Test.resources -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.Properties.Resources.resources -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 1f29ecb1ea56db940e77e073473b6664a41124ec 2 | -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\Browserform.exe.config 2 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\Browserform.exe 3 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\Browserform.pdb 4 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.Core.dll 5 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.dll 6 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.WinForms.dll 7 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CommonTools.dll 8 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\EntityFramework.dll 9 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\EntityFramework.SqlServer.dll 10 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\MyDB.dll 11 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\Newtonsoft.Json.dll 12 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\System.Data.SQLite.dll 13 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CommonTools.pdb 14 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\MyDB.pdb 15 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\MyDB.dll.config 16 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.WinForms.pdb 17 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.WinForms.xml 18 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.pdb 19 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.xml 20 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.Core.pdb 21 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\CefSharp.Core.xml 22 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\EntityFramework.xml 23 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\EntityFramework.SqlServer.xml 24 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\Newtonsoft.Json.xml 25 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\System.Data.SQLite.xml 26 | E:\Projects\custom_service_system\Browserform\bin\x64\Release\System.Data.SQLite.dll.config 27 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.csprojResolveAssemblyReference.cache 28 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.ChatRecord.resources 29 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.Form1.resources 30 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.Frm.Test.resources 31 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.Properties.Resources.resources 32 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.csproj.GenerateResource.Cache 33 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.exe 34 | E:\Projects\custom_service_system\Browserform\obj\x64\Release\Browserform.pdb 35 | E:\Projects\custom_service_system\bin\Browserform.exe.config 36 | E:\Projects\custom_service_system\bin\Browserform.exe 37 | E:\Projects\custom_service_system\bin\Browserform.pdb 38 | -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.exe -------------------------------------------------------------------------------- /obj/x64/Release/Browserform.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/Browserform.pdb -------------------------------------------------------------------------------- /obj/x64/Release/CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 2bde477710026299a5e55084c545738d7857f626 2 | -------------------------------------------------------------------------------- /obj/x64/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /obj/x64/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/x64/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/x64/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x64/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.ChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.ChatRecord.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.Form1.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.Frm.FrmChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.Frm.FrmChatRecord.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.Frm.FrmGroupUser.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.Frm.FrmGroupUser.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.Frm.FrmMsg.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.Frm.FrmMsg.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.Frm.Test.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.Frm.Test.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.Properties.Resources.resources -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | d7ddd199a50f125be67939493095bf9bc3137f50 2 | -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.csprojResolveAssemblyReference.cache 2 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.ChatRecord.resources 3 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.Form1.resources 4 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.Properties.Resources.resources 5 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.csproj.GenerateResource.Cache 6 | G:\Repository\wechat\wechat开发版\bin\Browserform.exe.config 7 | G:\Repository\wechat\wechat开发版\bin\Browserform.exe 8 | G:\Repository\wechat\wechat开发版\bin\Browserform.pdb 9 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.exe 10 | G:\Repository\wechat\wechat开发版\Browserform\obj\x86\Debug\Browserform.pdb 11 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.csprojResolveAssemblyReference.cache 12 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.ChatRecord.resources 13 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.Form1.resources 14 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.Properties.Resources.resources 15 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.csproj.GenerateResource.Cache 16 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.exe 17 | E:\repository\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.pdb 18 | E:\Projects\wechat_cefsharp\bin\Browserform.exe 19 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.ChatRecord.resources 20 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.Form1.resources 21 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.Properties.Resources.resources 22 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.csproj.GenerateResource.Cache 23 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.exe 24 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.pdb 25 | E:\Projects\wechat_cefsharp\bin\Browserform.exe.config 26 | E:\Projects\wechat_cefsharp\bin\Browserform.pdb 27 | E:\Projects\wechat_cefsharp\Browserform\obj\x86\Debug\Browserform.csprojResolveAssemblyReference.cache 28 | E:\Projects\custom_service_system\bin2\Browserform.exe.config 29 | E:\Projects\custom_service_system\bin2\Browserform.exe 30 | E:\Projects\custom_service_system\bin2\Browserform.pdb 31 | E:\Projects\custom_service_system\bin3\Browserform.exe.config 32 | E:\Projects\custom_service_system\bin3\Browserform.exe 33 | E:\Projects\custom_service_system\bin3\Browserform.pdb 34 | E:\Projects\custom_service_system\WinForm\Publish\Browserform.exe.config 35 | E:\Projects\custom_service_system\WinForm\Publish\Browserform.exe 36 | E:\Projects\custom_service_system\WinForm\Publish\Browserform.pdb 37 | E:\Projects\custom_service_system\WinForm\Bin\Browserform.exe.config 38 | E:\Projects\custom_service_system\WinForm\Bin\Browserform.exe 39 | E:\Projects\custom_service_system\WinForm\Bin\Browserform.pdb 40 | E:\Projects\custom_service_system\bin1\Browserform.exe.config 41 | E:\Projects\custom_service_system\bin1\Browserform.exe 42 | E:\Projects\custom_service_system\bin1\Browserform.pdb 43 | E:\repository\custom_service_huochengyan\bin\Browserform.exe.config 44 | E:\repository\custom_service_huochengyan\bin\Browserform.exe 45 | E:\repository\custom_service_huochengyan\bin\Browserform.pdb 46 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.csprojResolveAssemblyReference.cache 47 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.ChatRecord.resources 48 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.Form1.resources 49 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.Frm.FrmChatRecord.resources 50 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.Frm.FrmGroupUser.resources 51 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.Frm.Test.resources 52 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.Properties.Resources.resources 53 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.csproj.GenerateResource.Cache 54 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.exe 55 | E:\repository\custom_service_huochengyan\Browserform\obj\x86\Debug\Browserform.pdb 56 | E:\Projects\custom_service_system\bin\Browserform.exe.config 57 | E:\Projects\custom_service_system\bin\Browserform.exe 58 | E:\Projects\custom_service_system\bin\Browserform.pdb 59 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.csprojResolveAssemblyReference.cache 60 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.ChatRecord.resources 61 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.Form1.resources 62 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.Frm.FrmChatRecord.resources 63 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.Frm.FrmGroupUser.resources 64 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.Frm.Test.resources 65 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.Properties.Resources.resources 66 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.csproj.GenerateResource.Cache 67 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.csproj.CoreCompileInputs.cache 68 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.exe 69 | E:\Projects\custom_service_system\Browserform\obj\x86\Debug\Browserform.pdb 70 | -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.exe -------------------------------------------------------------------------------- /obj/x86/Debug/Browserform.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/Browserform.pdb -------------------------------------------------------------------------------- /obj/x86/Debug/CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 089431240c627a5462d8d93d0851f6e8c26bc778 2 | -------------------------------------------------------------------------------- /obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.ChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.ChatRecord.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.Form1.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.Frm.FrmChatRecord.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.Frm.FrmChatRecord.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.Frm.FrmGroupUser.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.Frm.FrmGroupUser.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.Frm.FrmMsg.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.Frm.FrmMsg.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.Frm.Test.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.Frm.Test.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.Properties.Resources.resources -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | abcd59f55c3f7df62bb51e61df59cbaca758fb98 2 | -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.csprojResolveAssemblyReference.cache 2 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.ChatRecord.resources 3 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.Form1.resources 4 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.Frm.Test.resources 5 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.Properties.Resources.resources 6 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.csproj.GenerateResource.Cache 7 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\Browserform.exe.config 8 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\Browserform.exe 9 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.Core.dll 10 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.dll 11 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.WinForms.dll 12 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CommonTools.dll 13 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\EntityFramework.dll 14 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\EntityFramework.SqlServer.dll 15 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\MyDB.dll 16 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\Newtonsoft.Json.dll 17 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\System.Data.SQLite.dll 18 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CommonTools.pdb 19 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\MyDB.dll.config 20 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.WinForms.pdb 21 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.WinForms.xml 22 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.pdb 23 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.xml 24 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.Core.pdb 25 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\CefSharp.Core.xml 26 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\EntityFramework.xml 27 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\EntityFramework.SqlServer.xml 28 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\Newtonsoft.Json.xml 29 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\System.Data.SQLite.xml 30 | E:\Projects\custom_service_system\Browserform\bin\x86\Release\System.Data.SQLite.dll.config 31 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.exe 32 | E:\Projects\custom_service_system\bin\Browserform.exe.config 33 | E:\Projects\custom_service_system\bin\Browserform.exe 34 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.Frm.FrmGroupUser.resources 35 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.Frm.FrmChatRecord.resources 36 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.csproj.CoreCompileInputs.cache 37 | E:\Projects\custom_service_system\Browserform\obj\x86\Release\Browserform.Frm.FrmMsg.resources 38 | -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /obj/x86/Release/Browserform.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/Browserform.exe -------------------------------------------------------------------------------- /obj/x86/Release/CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 62214cd2e7beeb7c97606ed7bb1323fdfa5c2e49 2 | -------------------------------------------------------------------------------- /obj/x86/Release/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /obj/x86/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/x86/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/x86/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Huochengyan/CefSharpGetData/45da236ee1a58e6330f4bf53c01cd07736d8d887/obj/x86/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | --------------------------------------------------------------------------------