From bd3d2471fa1c3291d71232c9e2e570838e0daf72 Mon Sep 17 00:00:00 2001
From: lk <1837241092@qq.com>
Date: 星期三, 19 十月 2022 11:06:10 +0800
Subject: [PATCH] 使用位置点击操作遇到拒绝访问的问题20221019LK

---
 BankRobot/Class/TTHttp.cs          |  162 +++++++++
 .gitignore                         |    1 
 BankRobot/frmCollectTI.Designer.cs |  193 ++++++++++
 BankRobot/Class/GetNumbers.cs      |  113 ++++++
 BankRobot/Class/GetTokenHelper.cs  |   41 ++
 BankRobot/frmCollectTI.cs          |  419 +++++++++++++++++++++++
 BankRobot/frmCollectTI.resx        |  126 +++++++
 7 files changed, 1,055 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1c38a68..cd5618d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -184,3 +184,4 @@
 
 # Microsoft Fakes
 FakesAssemblies/
+.vs/
diff --git a/BankRobot/Class/GetNumbers.cs b/BankRobot/Class/GetNumbers.cs
new file mode 100644
index 0000000..312832a
--- /dev/null
+++ b/BankRobot/Class/GetNumbers.cs
@@ -0,0 +1,113 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using System.Web;
+
+
+namespace CrawRobot.Class
+{
+   public class GetNumbers
+    {
+        // 鏁板瓧璇嗗埆
+        public static string Numbers(string Base64Pic)
+        {
+            string token = GetTokenHelper.getAccessToken();
+            string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/numbers?access_token=" + token;
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "post";
+            request.KeepAlive = true;
+            // 鍥剧墖鐨刡ase64缂栫爜
+            string base64 = Base64Pic.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");
+            String str = "image=" + HttpUtility.UrlEncode(base64);
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+            JObject jo = null;
+
+            var joResult = "";
+
+            jo = (JObject)JsonConvert.DeserializeObject(result);
+            if (jo["words_result_num"].ToString() != "0")
+            {
+                joResult = jo["words_result"][0]["words"].ToString();
+            }
+
+            return joResult;
+
+        }
+        // 閫氱敤鏂囧瓧璇嗗埆
+        public static string GeneralBasic(string fileName)
+        {
+            try
+            {
+                string token = GetTokenHelper.getAccessToken();
+                //string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" + token;
+                string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + token;
+                Encoding encoding = Encoding.Default;
+                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+                request.Method = "post";
+                request.KeepAlive = true;
+                // 鍥剧墖鐨刡ase64缂栫爜
+                string base64 = fileName.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");
+                string str = "image=" + HttpUtility.UrlEncode(base64);
+                byte[] buffer = encoding.GetBytes(str);
+                request.ContentLength = buffer.Length;
+                request.GetRequestStream().Write(buffer, 0, buffer.Length);
+                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
+                string result = reader.ReadToEnd();
+                //LogHelper.Info("绯荤粺璇嗗埆鎴愬姛锛乗r\n" + result);
+                return result;
+            }
+            catch (Exception e)
+            {
+                //LogHelper.Error(e.ToString() + "\r\n" + e.Message.ToString());
+                return "Exception";
+            }
+
+        }
+
+        public static string GetCheckInfo(int iLeft, int iTop, int iWidth, int iHeight)
+        {
+            //int iWidth = 596;
+            //int iHeight = 58;
+            Bitmap myImage = new Bitmap(iWidth, iHeight);
+            Graphics gla = Graphics.FromImage(myImage);
+            gla.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
+            gla.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
+            gla.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
+            gla.CopyFromScreen(iLeft, iTop, 0, 0, new Size(iWidth, iHeight));
+            myImage.Save(System.AppDomain.CurrentDomain.BaseDirectory + "/ZFYZ.png");
+            //瀛楅潰鏄褰撳墠鍥剧墖杩涜浜嗕簩杩涘埗杞崲
+            MemoryStream ms = new MemoryStream();
+            myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
+            byte[] arr = new byte[ms.Length];
+            ms.Position = 0;
+            ms.Read(arr, 0, (int)ms.Length);
+            ms.Close();
+            string Base64Pic = Convert.ToBase64String(arr);
+            return Base64Pic;
+        }
+
+        public static string getFileBase64(String fileName)
+        {
+            FileStream filestream = new FileStream(fileName, FileMode.Open);
+            byte[] arr = new byte[filestream.Length];
+            filestream.Read(arr, 0, (int)filestream.Length);
+            string baser64 = Convert.ToBase64String(arr);
+            filestream.Close();
+            return baser64;
+        }
+    }
+}
diff --git a/BankRobot/Class/GetTokenHelper.cs b/BankRobot/Class/GetTokenHelper.cs
new file mode 100644
index 0000000..b6b1b97
--- /dev/null
+++ b/BankRobot/Class/GetTokenHelper.cs
@@ -0,0 +1,41 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+
+
+
+namespace CrawRobot.Class
+{
+    public static class GetTokenHelper
+
+    {
+        // 鐧惧害浜戜腑寮�閫氬搴旀湇鍔″簲鐢ㄧ殑 API Key 
+        private static string clientId = "1xkwSoQsx0GE6Fm99tzbflAL";//"PMIzFi2xhwSMXgiYqEfGIGx7";
+                                                                    // 鐧惧害浜戜腑寮�閫氬搴旀湇鍔″簲鐢ㄧ殑 Secret Key
+        private static string clientSecret = "A86P8sSdMaYBnRUTD2GQk4i8FcIlEFlR";//"SiLX7KgPZnGKtqOoZCzRw7dakYCt1zrs";
+
+        public static string getAccessToken()
+        {
+            string authHost = "https://aip.baidubce.com/oauth/2.0/token";
+            HttpClient client = new HttpClient();
+            List<KeyValuePair<string, string>> paraList = new List<KeyValuePair<string, string>>();
+            paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
+            paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
+            paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));
+
+            HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
+            string result = response.Content.ReadAsStringAsync().Result;
+            JObject jo = null;
+            var joResult = "";
+            jo = (JObject)JsonConvert.DeserializeObject(result);
+            joResult = jo["access_token"].ToString();
+            return joResult;
+        }
+    }
+}
+
diff --git a/BankRobot/Class/TTHttp.cs b/BankRobot/Class/TTHttp.cs
new file mode 100644
index 0000000..8bb3e78
--- /dev/null
+++ b/BankRobot/Class/TTHttp.cs
@@ -0,0 +1,162 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.IO;
+using System.Net;
+using System.Text;
+
+
+namespace ImgRec
+{
+    public class TTHttp
+    {
+        /// <summary>
+        /// HTTP POST鏂瑰紡璇锋眰鏁版嵁(甯﹀浘鐗�)
+        /// </summary>
+        /// <param name="url">URL</param>        
+        /// <param name="param">POST鐨勬暟鎹�</param>
+        /// <param name="fileByte">鍥剧墖Byte</param>
+        /// <returns></returns>
+        public static string Post(string url, IDictionary<object, object> param, byte[] fileByte)
+        {
+            string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
+            byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
+
+            HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
+            wr.ContentType = "multipart/form-data; boundary=" + boundary;
+            wr.UserAgent = "TT_C# 2.0";
+            wr.Method = "POST";
+
+            //wr.Timeout = 150000;
+            //wr.KeepAlive = true;
+
+            //wr.Credentials = System.Net.CredentialCache.DefaultCredentials;
+            Stream rs = null;
+            try
+            {
+                rs = wr.GetRequestStream();
+            }
+            catch { return "鏃犳硶杩炴帴.璇锋鏌ョ綉缁�."; }
+            string responseStr = null;
+
+            string formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";
+            foreach (string key in param.Keys)
+            {
+                rs.Write(boundarybytes, 0, boundarybytes.Length);
+                string formitem = string.Format(formdataTemplate, key, param[key]);
+                byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
+                rs.Write(formitembytes, 0, formitembytes.Length);
+            }
+            rs.Write(boundarybytes, 0, boundarybytes.Length);
+
+            string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n";
+            string header = string.Format(headerTemplate, "image", "i.gif", "image/gif");//image/jpeg
+            byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
+            rs.Write(headerbytes, 0, headerbytes.Length);
+
+            rs.Write(fileByte, 0, fileByte.Length);
+
+            byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--");
+            rs.Write(trailer, 0, trailer.Length);
+            rs.Close();
+
+            WebResponse wresp = null;
+            try
+            {
+                wresp = wr.GetResponse();
+
+                Stream stream2 = wresp.GetResponseStream();
+                StreamReader reader2 = new StreamReader(stream2);
+                responseStr = reader2.ReadToEnd();
+
+            }
+            catch
+            {
+                //throw;
+            }
+            finally
+            {
+                if (wresp != null)
+                {
+                    wresp.Close();
+                    wresp = null;
+                }
+                wr.Abort();
+                wr = null;
+
+            }
+            return responseStr;
+        }
+
+        public static string Post(string url, Dictionary<object, object> param)
+        {
+            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
+            request.Method = "POST";
+            request.ContentType = "application/x-www-form-urlencoded";
+            request.UserAgent = "TT_C# 2.0";
+            //request.Timeout = 30000;
+
+            #region POST鏂规硶
+
+            //濡傛灉闇�瑕丳OST鏁版嵁  
+            if (!(param == null || param.Count == 0))
+            {
+                StringBuilder buffer = new StringBuilder();
+                int i = 0;
+                foreach (string key in param.Keys)
+                {
+                    if (i > 0)
+                    {
+                        buffer.AppendFormat("&{0}={1}", key, param[key]);
+                    }
+                    else
+                    {
+                        buffer.AppendFormat("{0}={1}", key, param[key]);
+                    }
+                    i++;
+                }
+
+                byte[] data = System.Text.Encoding.UTF8.GetBytes(buffer.ToString());
+                try
+                {
+                    using (Stream stream = request.GetRequestStream())
+                    {
+                        stream.Write(data, 0, data.Length);
+                    }
+                }
+                catch
+                {
+                    return "鏃犳硶杩炴帴.璇锋鏌ョ綉缁�.";
+                }
+
+            }
+
+            #endregion
+
+            WebResponse response = null;
+            string responseStr = string.Empty;
+            try
+            {
+                response = request.GetResponse();
+
+                if (response != null)
+                {
+                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
+                    responseStr = reader.ReadToEnd();
+                    reader.Close();
+                }
+            }
+            catch (Exception)
+            {
+                //throw;
+            }
+            finally
+            {
+                request = null;
+                response = null;
+            }
+
+            return responseStr;
+
+        }
+    }
+}
diff --git a/BankRobot/frmCollectTI.Designer.cs b/BankRobot/frmCollectTI.Designer.cs
new file mode 100644
index 0000000..ce15bf5
--- /dev/null
+++ b/BankRobot/frmCollectTI.Designer.cs
@@ -0,0 +1,193 @@
+锘縩amespace CrawRobot
+{
+    partial class frmCollectTI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.btnTest = new System.Windows.Forms.Button();
+            this.btnIETest = new System.Windows.Forms.Button();
+            this.btnStart = new System.Windows.Forms.Button();
+            this.timer1 = new System.Windows.Forms.Timer(this.components);
+            this.richTextLog = new System.Windows.Forms.RichTextBox();
+            this.lblStatus = new System.Windows.Forms.Label();
+            this.txtURL = new System.Windows.Forms.TextBox();
+            this.btnStop = new System.Windows.Forms.Button();
+            this.btnContinue = new System.Windows.Forms.Button();
+            this.txtquantity = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            // 
+            // btnTest
+            // 
+            this.btnTest.Location = new System.Drawing.Point(959, 10);
+            this.btnTest.Margin = new System.Windows.Forms.Padding(4);
+            this.btnTest.Name = "btnTest";
+            this.btnTest.Size = new System.Drawing.Size(51, 29);
+            this.btnTest.TabIndex = 30;
+            this.btnTest.Text = "Test";
+            this.btnTest.UseVisualStyleBackColor = true;
+            // 
+            // btnIETest
+            // 
+            this.btnIETest.Location = new System.Drawing.Point(1013, 10);
+            this.btnIETest.Margin = new System.Windows.Forms.Padding(4);
+            this.btnIETest.Name = "btnIETest";
+            this.btnIETest.Size = new System.Drawing.Size(51, 29);
+            this.btnIETest.TabIndex = 31;
+            this.btnIETest.Text = "IE";
+            this.btnIETest.UseVisualStyleBackColor = true;
+            // 
+            // btnStart
+            // 
+            this.btnStart.Location = new System.Drawing.Point(659, 14);
+            this.btnStart.Margin = new System.Windows.Forms.Padding(4);
+            this.btnStart.Name = "btnStart";
+            this.btnStart.Size = new System.Drawing.Size(75, 29);
+            this.btnStart.TabIndex = 21;
+            this.btnStart.Text = "鍚姩";
+            this.btnStart.UseVisualStyleBackColor = true;
+            this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
+            // 
+            // richTextLog
+            // 
+            this.richTextLog.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.richTextLog.Location = new System.Drawing.Point(22, 74);
+            this.richTextLog.Margin = new System.Windows.Forms.Padding(4);
+            this.richTextLog.Name = "richTextLog";
+            this.richTextLog.Size = new System.Drawing.Size(1028, 411);
+            this.richTextLog.TabIndex = 26;
+            this.richTextLog.Text = "";
+            // 
+            // lblStatus
+            // 
+            this.lblStatus.AutoSize = true;
+            this.lblStatus.Location = new System.Drawing.Point(19, 49);
+            this.lblStatus.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.lblStatus.Name = "lblStatus";
+            this.lblStatus.Size = new System.Drawing.Size(127, 15);
+            this.lblStatus.TabIndex = 25;
+            this.lblStatus.Text = "绯荤粺鍒濆鍖栧畬鎴愶紒";
+            // 
+            // txtURL
+            // 
+            this.txtURL.Location = new System.Drawing.Point(75, 18);
+            this.txtURL.Margin = new System.Windows.Forms.Padding(4);
+            this.txtURL.Name = "txtURL";
+            this.txtURL.Size = new System.Drawing.Size(420, 25);
+            this.txtURL.TabIndex = 23;
+            // 
+            // btnStop
+            // 
+            this.btnStop.Enabled = false;
+            this.btnStop.Location = new System.Drawing.Point(834, 16);
+            this.btnStop.Margin = new System.Windows.Forms.Padding(4);
+            this.btnStop.Name = "btnStop";
+            this.btnStop.Size = new System.Drawing.Size(73, 29);
+            this.btnStop.TabIndex = 19;
+            this.btnStop.Text = "鍋滄";
+            this.btnStop.UseVisualStyleBackColor = true;
+            this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
+            // 
+            // btnContinue
+            // 
+            this.btnContinue.Enabled = false;
+            this.btnContinue.Location = new System.Drawing.Point(751, 16);
+            this.btnContinue.Margin = new System.Windows.Forms.Padding(4);
+            this.btnContinue.Name = "btnContinue";
+            this.btnContinue.Size = new System.Drawing.Size(75, 29);
+            this.btnContinue.TabIndex = 20;
+            this.btnContinue.Text = "缁х画";
+            this.btnContinue.UseVisualStyleBackColor = true;
+            // 
+            // txtquantity
+            // 
+            this.txtquantity.Location = new System.Drawing.Point(582, 16);
+            this.txtquantity.Name = "txtquantity";
+            this.txtquantity.Size = new System.Drawing.Size(56, 25);
+            this.txtquantity.TabIndex = 32;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(500, 25);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(67, 15);
+            this.label1.TabIndex = 33;
+            this.label1.Text = "璐拱鏁伴噺";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(1, 28);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(67, 15);
+            this.label2.TabIndex = 34;
+            this.label2.Text = "浜у搧鍚嶇О";
+            // 
+            // frmCollectTI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1079, 516);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.txtquantity);
+            this.Controls.Add(this.btnTest);
+            this.Controls.Add(this.btnIETest);
+            this.Controls.Add(this.btnStart);
+            this.Controls.Add(this.richTextLog);
+            this.Controls.Add(this.lblStatus);
+            this.Controls.Add(this.txtURL);
+            this.Controls.Add(this.btnStop);
+            this.Controls.Add(this.btnContinue);
+            this.Name = "frmCollectTI";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "TI鑷姩涓嬪崟";
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnTest;
+        private System.Windows.Forms.Button btnIETest;
+        private System.Windows.Forms.Button btnStart;
+        private System.Windows.Forms.Timer timer1;
+        private System.Windows.Forms.RichTextBox richTextLog;
+        private System.Windows.Forms.Label lblStatus;
+        private System.Windows.Forms.TextBox txtURL;
+        private System.Windows.Forms.Button btnStop;
+        private System.Windows.Forms.Button btnContinue;
+        private System.Windows.Forms.TextBox txtquantity;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+    }
+}
\ No newline at end of file
diff --git a/BankRobot/frmCollectTI.cs b/BankRobot/frmCollectTI.cs
new file mode 100644
index 0000000..97d34a1
--- /dev/null
+++ b/BankRobot/frmCollectTI.cs
@@ -0,0 +1,419 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Configuration;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Web;
+using System.Windows.Forms;
+using CrawRobot.BLL;
+using CrawRobot.Class;
+using CrawRobot.Model;
+using ImgRec;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+
+namespace CrawRobot
+{
+    public partial class frmCollectTI : Form
+    {
+        public frmCollectTI()
+        {
+            InitializeComponent();
+        }
+
+        #region 鍏ㄥ眬鍙橀噺
+        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+        static extern int SetCursorPos(int x, int y);
+
+        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+        static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
+        public const int MOUSEEVENTF_LEFTDOWN = 0x2;
+        public const int MOUSEEVENTF_LEFTUP = 0x4;
+        public const int MOUSEEVENTF_WHEEL = 0x800;
+        public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
+        public static bool bStop = false;
+        public static bool bExiting = false;     //姝e湪閫�鍑�
+        public List<string> listWXGZH = new List<string>();//寰俊鍏紬鍙�
+        public WebBrowser webBrowser = null;
+        public int iFileId = 0;
+        public int iStoreNum = 0;
+        public int iCount = 0;
+        #endregion
+
+
+        // <summary>
+        /// 鎸囧畾浣嶇疆鐐瑰嚮鎸夐挳
+        /// </summary>
+        /// <param name="iLeft"></param>
+        /// <param name="iTop"></param>
+        private void ClickButtonBy(int iLeft, int iTop, int DelayMS = 1000)
+        {
+            DelayTime(200);
+            SetCursorPos(iLeft, iTop);
+            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
+            DelayTime(DelayMS);
+        }
+
+        /// <summary>
+        /// 鎸囧畾浣嶇疆杈撳叆鍐呭
+        /// </summary>
+        /// <param name="TextInfo"></param>
+        /// <param name="iLeft"></param>
+        /// <param name="iTop"></param>
+        private void InputTextInfo(string TextInfo, int iLeft, int iTop, int DelayMS = 600)
+        {
+            DelayTime(DelayMS);
+            Clipboard.SetDataObject(TextInfo);
+            SetCursorPos(iLeft, iTop);
+            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
+            DelayTime(50);
+            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
+            DelayTime(30);
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            SendKeys.SendWait("{BACKSPACE}");
+            DelayTime(30);
+            SendKeys.SendWait("^v");
+            DelayTime(20);
+        }
+
+        private void btnStart_Click(object sender, EventArgs e)
+        {
+            //鍚姩
+            Start();
+            //try
+            //{
+            //    瑙f瀽鑾峰彇鍏蜂綋閾炬帴
+            //    bStop = false;
+            //    btnStart.Enabled = false;
+            //    btnContinue.Enabled = true;
+            //    btnStop.Enabled = true;
+            //    iStoreNum = 0;
+
+            //    if (cboxTime.Checked) //瀹氭椂寰幆妯″紡
+            //    {
+            //        CollectInfobyTime();
+            //    }
+            //    else                 //鏅�氫竴娆℃�фā寮�
+            //    {
+            //        CollectInfoCommon();
+            //    }
+            //}
+            //catch (Exception exception)
+            //{
+            //    ResetSystem("绯荤粺鍚姩寮傚父缁堟锛�", true);
+            //    MessageBox.Show("绯荤粺鍚姩寮傚父缁堟锛佺‘璁ゅ悗鍙互缁х画鎶撳彇锛乗r\n閿欒淇℃伅锛�" + exception.ToString());
+            //}
+        }
+
+        ////寮�濮嬫悳绱�
+        //private void CollectInfoCommon()
+        //{
+
+        //    if (listWXGZH.Count == 0)
+        //    {
+        //        listWXGZH.Add(txtURL.Text.Trim());
+        //        string strURLSearch =
+        //            $"https://www.ti.com.cn/";
+        //    }
+        //    else
+        //    {
+        //        for (int j = 0; j < listWXGZH.Count; j++)
+        //        {
+        //            if (bStop)
+        //            {
+        //                ResetSystem("绯荤粺鎶撳彇鏁版嵁寮哄埗鍋滄锛乥Stop=True");
+        //                break;
+        //            }
+        //            string strURLSearch = "";
+        //            string strResult = "";
+        //            string strURL = HttpUtility.UrlEncode(txtURL.Text, Encoding.UTF8);
+        //            try
+        //            {
+        //                strURLSearch =
+        //             $"https://www.ti.com.cn/sitesearch/zh-cn/docs/universalsearch.tsp?langPref=zh-CN&searchTerm={strURL}&nr=9#q={strURL}&numberOfResults=25";
+        //                webBrowser1.Navigate(strURLSearch);
+        //                DelayTime(10000);
+        //                strResult = webBrowser1.Document.Body.InnerHtml;
+        //            }
+        //            catch
+        //            {
+        //                try
+        //                {
+        //                    DelayTime(10000);
+        //                    strURLSearch =
+        //                $"https://www.ti.com.cn/sitesearch/zh-cn/docs/universalsearch.tsp?langPref=zh-CN&searchTerm={strURL}&nr=9#q={strURL}&numberOfResults=25";
+        //                    //strURLSearch =
+        //                    //    $"https://www.ti.com.cn/?type=1&s_from=input&query={strURL}&ie=utf8&_sug_=n&_sug_type_=";
+        //                    strResult = HttpApi(strURLSearch, "", "post");
+
+        //                }
+        //                catch (Exception e)
+        //                {
+        //                    richTextLog.Text += "绯荤粺鍑虹幇寮傚父璺宠繃A锛丒xception:" + e.ToString();
+        //                }
+        //            }
+
+        //            if (strResult.Contains("缂鸿揣"))
+        //            {
+        //                DelayTime(5000);
+        //                MessageBox.Show("璇存槑娌¤揣");
+        //                //MessageBox.Show("姝e湪鍒锋柊");
+        //                CollectInfoCommon();
+        //            }
+        //            else
+        //            {
+        //                DelayTime(5000);
+        //                MessageBox.Show("璇存槑鏈夎揣");
+        //                //strResult.Replace("杈撳叆鏁伴噺", "10");
+        //                //MessageBox.Show("ok");
+        //            }
+        //        }
+        //    }
+
+        //}
+
+        private void Start()
+        {
+            ////鍒锋柊
+            //int refreshLeft = Convert.ToInt32(ConfigurationManager.AppSettings["refreshLeft"]);
+            //int refreshTop = Convert.ToInt32(ConfigurationManager.AppSettings["refreshTop"]);
+            //ClickButtonBy(refreshLeft, refreshTop);
+            ////杈撳叆浜у搧
+            //int productLeft = Convert.ToInt32(ConfigurationManager.AppSettings["productLeft"]);
+            //int productTop = Convert.ToInt32(ConfigurationManager.AppSettings["productTop"]);
+            //if (txtURL.Text.Trim() != null)
+            //{
+            //    InputTextInfo(txtURL.Text.Trim(), productLeft, productTop);
+            //}
+            //else
+            //{
+            //    MessageBox.Show("璇疯緭鍏ヤ骇鍝�");
+            //}
+            //string strURL = HttpUtility.UrlEncode(txtURL.Text, Encoding.UTF8);
+            //DelayTime(2000);
+            ////鐐瑰嚮鎼滅储浜у搧
+            //int searchproductLeft = Convert.ToInt32(ConfigurationManager.AppSettings["searchproductLeft"]);
+            //int searchproductTop = Convert.ToInt32(ConfigurationManager.AppSettings["searchproductTop"]);
+            //ClickButtonBy(searchproductLeft, searchproductTop);
+            //DelayTime(7000);
+            ////鎸囧畾浣嶇疆杈撳叆璐拱鏁伴噺
+            //int purchasequantityLeft = Convert.ToInt32(ConfigurationManager.AppSettings["purchasequantityLeft"]);
+            //int purchasequantityTop = Convert.ToInt32(ConfigurationManager.AppSettings["purchasequantityTop"]);
+            //if (txtquantity.Text.Trim() != null)
+            //{
+            //    InputTextInfo(txtquantity.Text.Trim(), purchasequantityLeft, purchasequantityTop);
+            //    DelayTime(2000);
+            //}
+            //else
+            //{
+            //    MessageBox.Show("璇疯緭鍏ヨ喘涔颁骇鍝佺殑鏁伴噺");
+            //}
+            ////鐐瑰嚮鍔犲叆璐墿杞�
+            //int shoppingcartLeft = Convert.ToInt32(ConfigurationManager.AppSettings["shoppingcartLeft"]);
+            //int shoppingcartTop = Convert.ToInt32(ConfigurationManager.AppSettings["shoppingcartTop"]);
+            //ClickButtonBy(shoppingcartLeft, shoppingcartTop);
+            //DelayTime(7000);
+            ////鐐瑰嚮缁撶畻鎸夐挳
+            //int settlementLeft = Convert.ToInt32(ConfigurationManager.AppSettings["settlementLeft"]);
+            //int settlementTop = Convert.ToInt32(ConfigurationManager.AppSettings["settlementTop"]);
+            //ClickButtonBy(settlementLeft, settlementTop);
+            //DelayTime(10000);
+            ////鐐瑰嚮璐墿杞﹂噷缁撶畻鎸夐挳
+            //int settlementtwoLeft = Convert.ToInt32(ConfigurationManager.AppSettings["settlementtwoLeft"]);
+            //int settlementtwoTop = Convert.ToInt32(ConfigurationManager.AppSettings["settlementtwoTop"]);
+            //ClickButtonBy(settlementtwoLeft, settlementtwoTop);
+            //DelayTime(10000);
+            ////鐐瑰嚮2娆′笅婊戯紝鍐嶇偣鍑�(1)涓嬩竴姝�
+            int slidedownwardLeft = Convert.ToInt32(ConfigurationManager.AppSettings["slidedownwardLeft"]);
+            int slidedownwardTop = Convert.ToInt32(ConfigurationManager.AppSettings["slidedownwardTop"]);
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            //DelayTime(2000);
+            //int nextstepLeft = Convert.ToInt32(ConfigurationManager.AppSettings["nextstepLeft"]);
+            //int nextstepTop = Convert.ToInt32(ConfigurationManager.AppSettings["nextstepTop"]);
+            //ClickButtonBy(nextstepLeft, nextstepTop);
+            //DelayTime(15000);
+            ////2.鍏堢偣鍑诲繀閫夋锛屽啀涓�娆$偣鍑讳笅婊戯紝鏈�鍚庣偣鍑�(2)涓嬩竴姝�
+            //int mandatoryLeft = Convert.ToInt32(ConfigurationManager.AppSettings["mandatoryLeft"]);
+            //int mandatoryTop = Convert.ToInt32(ConfigurationManager.AppSettings["mandatoryTop"]);
+            //ClickButtonBy(mandatoryLeft, mandatoryTop);
+            //DelayTime(1000);
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            //int nextsteptwoLeft = Convert.ToInt32(ConfigurationManager.AppSettings["nextsteptwoLeft"]);
+            //int nextsteptwoTop = Convert.ToInt32(ConfigurationManager.AppSettings["nextsteptwoTop"]);
+            //ClickButtonBy(nextsteptwoLeft, nextsteptwoTop);
+            ////鐐瑰嚮纭骞剁户缁�
+            //int determineLeft = Convert.ToInt32(ConfigurationManager.AppSettings["determineLeft"]);
+            //int determineTop = Convert.ToInt32(ConfigurationManager.AppSettings["determineTop"]);
+            //ClickButtonBy(determineLeft, determineTop);
+            //DelayTime(20000);
+            ////3.鍏堢偣鍑讳笅婊戝啀鐐瑰嚮(3)涓嬩竴姝�
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            //int nextstepthreeLeft = Convert.ToInt32(ConfigurationManager.AppSettings["nextstepthreeLeft"]);
+            //int nextstepthreeTop = Convert.ToInt32(ConfigurationManager.AppSettings["nextstepthreeTop"]);
+            //ClickButtonBy(nextstepthreeLeft, nextstepthreeTop);
+            //DelayTime(15000);
+            //4.绗�4姝ユ病鏈�
+            //5.鍏堢偣鍑讳笅婊戝啀鐐瑰嚮鏈嶅姟鏉℃闃呰锛屽啀鐐瑰嚮鎺ュ彈锛岀偣鍑讳笅婊戯紝鏈�鍚庣偣鍑�(4)涓嬩竴姝�
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            //int serviceLeft = Convert.ToInt32(ConfigurationManager.AppSettings["serviceLeft"]);
+            //int serviceTop = Convert.ToInt32(ConfigurationManager.AppSettings["serviceTop"]);
+            //ClickButtonBy(serviceLeft, serviceTop);
+            //int acceptLeft = Convert.ToInt32(ConfigurationManager.AppSettings["acceptLeft"]);
+            //int acceptTop = Convert.ToInt32(ConfigurationManager.AppSettings["acceptTop"]);
+            //ClickButtonBy(acceptLeft, acceptTop);
+            //DelayTime(1000);
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            //int nextstepfourLeft = Convert.ToInt32(ConfigurationManager.AppSettings["nextstepfourLeft"]);
+            //int nextstepfourTop = Convert.ToInt32(ConfigurationManager.AppSettings["nextstepfourTop"]);
+            //ClickButtonBy(nextstepfourLeft, nextstepfourTop);
+            //DelayTime(15000);
+            ////6.鍏堢偣鍑讳笅婊戯紝鍦ㄩ�夋嫨鏀粯瀹濇垨鑰呭井淇℃敮浠橈紝鏈�鍚庣偣鍑绘敮浠�
+            ////涓嬫粦
+            //DelayTime(3000);
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            ////閫夋嫨鏀粯瀹濅粯娆�
+            //int alipayLeft = Convert.ToInt32(ConfigurationManager.AppSettings["alipayLeft"]);
+            //int alipayTop = Convert.ToInt32(ConfigurationManager.AppSettings["alipayTop"]);
+            //ClickButtonBy(alipayLeft, alipayTop);
+            ////閫夋嫨寰俊鏀粯
+            //int weChatLeft = Convert.ToInt32(ConfigurationManager.AppSettings["weChatLeft"]);
+            //int weChatTop = Convert.ToInt32(ConfigurationManager.AppSettings["weChatTop"]);
+            //ClickButtonBy(weChatLeft, weChatTop);
+            //DelayTime(1000);
+            //ClickButtonBy(slidedownwardLeft, slidedownwardTop);
+            ////鐐瑰嚮鏀粯
+            //int paymentLeft = Convert.ToInt32(ConfigurationManager.AppSettings["paymentLeft"]);
+            //int paymentTop = Convert.ToInt32(ConfigurationManager.AppSettings["paymentTop"]);
+            //ClickButtonBy(paymentLeft, paymentTop);
+            //DelayTime(10000);
+            int iLeft = Convert.ToInt32(ConfigurationManager.AppSettings["iLeft"]);
+            int iTop = Convert.ToInt32(ConfigurationManager.AppSettings["iTop"]);
+            string Base64Pic = ScreenVerifyCode(iLeft, iTop);
+            string Result = GetNumbers.GeneralBasic(Base64Pic);
+            JObject jo = new JObject();
+            jo = JsonConvert.DeserializeObject<JObject>(Result);
+            if (jo["words_result"] != null && jo["words_result"].ToString() != "")
+            {
+                JObject words = jo["words_result"][0].Value<JObject>();
+                richTextLog.Text += words["words"].ToString();
+                MessageBox.Show("宸叉垚鍔熷畬鎴愯鍗曪紝璇锋敮浠�");
+            }
+            else
+            {
+                MessageBox.Show("璁㈠崟鍑虹幇閿欒锛�");
+            }
+        }
+
+
+        /// <summary>
+        /// 鎸囧畾浣嶇疆鎴彇楠岃瘉鐮�
+        /// </summary>
+        /// <param name="iLeft"></param>
+        /// <param name="iTop"></param>
+        /// <returns></returns>
+        private string ScreenVerifyCode(int iLeft, int iTop)
+        {
+            SetCursorPos(iLeft, iTop);
+            int iWidth = 600;//int iWidth = 92;
+            int iHeight = 45;//int iHeight = 36;
+            Bitmap myImage = new Bitmap(iWidth, iHeight);
+            Graphics gla = Graphics.FromImage(myImage);
+            gla.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
+            gla.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
+            gla.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
+            gla.CopyFromScreen(iLeft, iTop, 0, 0, new Size(iWidth, iHeight));
+            myImage.Save(System.AppDomain.CurrentDomain.BaseDirectory + "/ZFJT.png");
+            //瀛楅潰鏄褰撳墠鍥剧墖杩涜浜嗕簩杩涘埗杞崲
+            MemoryStream ms = new MemoryStream();
+            myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
+            byte[] arr = new byte[ms.Length];
+            ms.Position = 0;
+            ms.Read(arr, 0, (int)ms.Length);
+            ms.Close();
+            string Base64Pic = Convert.ToBase64String(arr);
+            return Base64Pic;
+        }
+
+
+        /// <summary>
+        /// 璋冪敤鎺ュ彛璇嗗埆楠岃瘉鐮�
+        /// </summary>
+        /// <param name="Base64Pic"></param>
+        /// <returns></returns>
+        public static string GeneralBasic(string fileName)
+        {
+            try
+            {
+                string token = GetTokenHelper.getAccessToken();
+                //string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" + token;
+                string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + token;
+                Encoding encoding = Encoding.Default;
+                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+                request.Method = "post";
+                request.KeepAlive = true;
+                // 鍥剧墖鐨刡ase64缂栫爜
+                string base64 = fileName.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");
+                string str = "image=" + HttpUtility.UrlEncode(base64);
+                byte[] buffer = encoding.GetBytes(str);
+                request.ContentLength = buffer.Length;
+                request.GetRequestStream().Write(buffer, 0, buffer.Length);
+                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
+                string result = reader.ReadToEnd();
+                return result;
+            }
+            catch (Exception e)
+            {
+                return "Exception";
+            }
+
+        }
+
+        private void btnStop_Click(object sender, EventArgs e)
+        {
+            //ResetSystem("绯荤粺鑷姩鎶撳彇鎵嬪姩鍋滄锛�");
+        }
+
+        /// <summary>
+        /// 寤惰繜鍑芥暟闃叉鍋囨
+        /// </summary>
+        /// <param name="mm"></param>
+        public static void DelayTime(int mm)
+        {
+            DateTime current = DateTime.Now;
+            while (current.AddMilliseconds(mm) > DateTime.Now)
+            {
+                if (bExiting) break;
+                Application.DoEvents();
+            }
+            TimeSpan ts = (DateTime.Now - current);
+            if (mm >= 100)
+            {
+                //ManageFile.AppendFile(ManageFile.strScriptDir + "\\Log.txt",
+                //    DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " 绯荤粺鑷姩绛夊緟" + mm.ToString() + "ms(" +
+                //    bExiting.ToString() + ") 瀹為檯绛夊緟" + ts.TotalMilliseconds + "ms");
+            }
+            return;
+        }
+    }
+}
\ No newline at end of file
diff --git a/BankRobot/frmCollectTI.resx b/BankRobot/frmCollectTI.resx
new file mode 100644
index 0000000..3a9e5f0
--- /dev/null
+++ b/BankRobot/frmCollectTI.resx
@@ -0,0 +1,126 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>25</value>
+  </metadata>
+</root>
\ No newline at end of file

--
Gitblit v1.8.0