├── .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 |
--------------------------------------------------------------------------------