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