commit
5ac03d0180
99 changed files with 2175 additions and 0 deletions
@ -0,0 +1,25 @@ |
|||||
|
|
||||
|
Microsoft Visual Studio Solution File, Format Version 12.00 |
||||
|
# Visual Studio Version 17 |
||||
|
VisualStudioVersion = 17.1.32228.430 |
||||
|
MinimumVisualStudioVersion = 10.0.40219.1 |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nocr", "nocr\nocr.csproj", "{18A9FC9D-F69C-4FFE-A19D-285C9DA82924}" |
||||
|
EndProject |
||||
|
Global |
||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||
|
Debug|Any CPU = Debug|Any CPU |
||||
|
Release|Any CPU = Release|Any CPU |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||
|
{18A9FC9D-F69C-4FFE-A19D-285C9DA82924}.Debug|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{18A9FC9D-F69C-4FFE-A19D-285C9DA82924}.Debug|Any CPU.Build.0 = Release|Any CPU |
||||
|
{18A9FC9D-F69C-4FFE-A19D-285C9DA82924}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{18A9FC9D-F69C-4FFE-A19D-285C9DA82924}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
EndGlobalSection |
||||
|
GlobalSection(SolutionProperties) = preSolution |
||||
|
HideSolutionNode = FALSE |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ExtensibilityGlobals) = postSolution |
||||
|
SolutionGuid = {12FCBF5C-B6C0-4EE8-B21D-E13EDA726F72} |
||||
|
EndGlobalSection |
||||
|
EndGlobal |
@ -0,0 +1,66 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using System.IO; |
||||
|
using System.Net; |
||||
|
using System.Web; |
||||
|
|
||||
|
namespace nocr |
||||
|
{ |
||||
|
public class GeneralBasic |
||||
|
{ |
||||
|
// 通用文字识别
|
||||
|
public static string generalBasic(String token, String picFile) |
||||
|
{ |
||||
|
// string 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; |
||||
|
// 图片的base64编码
|
||||
|
string base64 = getFileBase64(picFile); |
||||
|
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(); |
||||
|
Console.WriteLine("通用文字识别:"); |
||||
|
Console.WriteLine(result); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
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; |
||||
|
} |
||||
|
} |
||||
|
public static class AccessToken |
||||
|
{ |
||||
|
// 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存
|
||||
|
// 返回token示例
|
||||
|
public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567"; |
||||
|
|
||||
|
public static String getAccessToken(String clientId, String clientSecret) |
||||
|
{ |
||||
|
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; |
||||
|
Console.WriteLine(result); |
||||
|
return result; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,191 @@ |
|||||
|
namespace nocr |
||||
|
{ |
||||
|
partial class Form1 |
||||
|
{ |
||||
|
/// <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(); |
||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); |
||||
|
this.btn_start = new System.Windows.Forms.Button(); |
||||
|
this.btn_cfg = new System.Windows.Forms.Button(); |
||||
|
this.isConj = new System.Windows.Forms.CheckBox(); |
||||
|
this.resultTXT = new System.Windows.Forms.RichTextBox(); |
||||
|
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); |
||||
|
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); |
||||
|
this.截图ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); |
||||
|
this.配置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); |
||||
|
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); |
||||
|
this.退出ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); |
||||
|
this.panel1 = new System.Windows.Forms.Panel(); |
||||
|
this.panel2 = new System.Windows.Forms.Panel(); |
||||
|
this.contextMenuStrip1.SuspendLayout(); |
||||
|
this.panel1.SuspendLayout(); |
||||
|
this.panel2.SuspendLayout(); |
||||
|
this.SuspendLayout(); |
||||
|
//
|
||||
|
// btn_start
|
||||
|
//
|
||||
|
this.btn_start.Location = new System.Drawing.Point(28, 12); |
||||
|
this.btn_start.Name = "btn_start"; |
||||
|
this.btn_start.Size = new System.Drawing.Size(55, 23); |
||||
|
this.btn_start.TabIndex = 0; |
||||
|
this.btn_start.Text = "截图"; |
||||
|
this.btn_start.UseVisualStyleBackColor = true; |
||||
|
this.btn_start.Click += new System.EventHandler(this.btn_start_Click); |
||||
|
//
|
||||
|
// btn_cfg
|
||||
|
//
|
||||
|
this.btn_cfg.Location = new System.Drawing.Point(100, 12); |
||||
|
this.btn_cfg.Name = "btn_cfg"; |
||||
|
this.btn_cfg.Size = new System.Drawing.Size(55, 23); |
||||
|
this.btn_cfg.TabIndex = 1; |
||||
|
this.btn_cfg.Text = "配置"; |
||||
|
this.btn_cfg.UseVisualStyleBackColor = true; |
||||
|
this.btn_cfg.Click += new System.EventHandler(this.btn_cfg_Click); |
||||
|
//
|
||||
|
// isConj
|
||||
|
//
|
||||
|
this.isConj.AutoSize = true; |
||||
|
this.isConj.Location = new System.Drawing.Point(175, 14); |
||||
|
this.isConj.Name = "isConj"; |
||||
|
this.isConj.Size = new System.Drawing.Size(75, 21); |
||||
|
this.isConj.TabIndex = 2; |
||||
|
this.isConj.Text = "段落整合"; |
||||
|
this.isConj.UseVisualStyleBackColor = true; |
||||
|
//
|
||||
|
// resultTXT
|
||||
|
//
|
||||
|
this.resultTXT.Dock = System.Windows.Forms.DockStyle.Fill; |
||||
|
this.resultTXT.Location = new System.Drawing.Point(0, 0); |
||||
|
this.resultTXT.Name = "resultTXT"; |
||||
|
this.resultTXT.Size = new System.Drawing.Size(384, 217); |
||||
|
this.resultTXT.TabIndex = 3; |
||||
|
this.resultTXT.Text = ""; |
||||
|
//
|
||||
|
// notifyIcon1
|
||||
|
//
|
||||
|
this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1; |
||||
|
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); |
||||
|
this.notifyIcon1.Text = "截图识字"; |
||||
|
this.notifyIcon1.Visible = true; |
||||
|
this.notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click); |
||||
|
//
|
||||
|
// contextMenuStrip1
|
||||
|
//
|
||||
|
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { |
||||
|
this.截图ToolStripMenuItem, |
||||
|
this.配置ToolStripMenuItem, |
||||
|
this.toolStripMenuItem1, |
||||
|
this.退出ToolStripMenuItem}); |
||||
|
this.contextMenuStrip1.Name = "contextMenuStrip1"; |
||||
|
this.contextMenuStrip1.Size = new System.Drawing.Size(147, 76); |
||||
|
//
|
||||
|
// 截图ToolStripMenuItem
|
||||
|
//
|
||||
|
this.截图ToolStripMenuItem.Name = "截图ToolStripMenuItem"; |
||||
|
this.截图ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T))); |
||||
|
this.截图ToolStripMenuItem.Size = new System.Drawing.Size(146, 22); |
||||
|
this.截图ToolStripMenuItem.Text = "截图"; |
||||
|
this.截图ToolStripMenuItem.Click += new System.EventHandler(this.截图ToolStripMenuItem_Click); |
||||
|
//
|
||||
|
// 配置ToolStripMenuItem
|
||||
|
//
|
||||
|
this.配置ToolStripMenuItem.Name = "配置ToolStripMenuItem"; |
||||
|
this.配置ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G))); |
||||
|
this.配置ToolStripMenuItem.Size = new System.Drawing.Size(146, 22); |
||||
|
this.配置ToolStripMenuItem.Text = "配置"; |
||||
|
this.配置ToolStripMenuItem.Click += new System.EventHandler(this.配置ToolStripMenuItem_Click); |
||||
|
//
|
||||
|
// toolStripMenuItem1
|
||||
|
//
|
||||
|
this.toolStripMenuItem1.Name = "toolStripMenuItem1"; |
||||
|
this.toolStripMenuItem1.Size = new System.Drawing.Size(143, 6); |
||||
|
//
|
||||
|
// 退出ToolStripMenuItem
|
||||
|
//
|
||||
|
this.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem"; |
||||
|
this.退出ToolStripMenuItem.Size = new System.Drawing.Size(146, 22); |
||||
|
this.退出ToolStripMenuItem.Text = "退出"; |
||||
|
this.退出ToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click); |
||||
|
//
|
||||
|
// panel1
|
||||
|
//
|
||||
|
this.panel1.Controls.Add(this.btn_start); |
||||
|
this.panel1.Controls.Add(this.btn_cfg); |
||||
|
this.panel1.Controls.Add(this.isConj); |
||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Top; |
||||
|
this.panel1.Location = new System.Drawing.Point(0, 0); |
||||
|
this.panel1.Name = "panel1"; |
||||
|
this.panel1.Size = new System.Drawing.Size(384, 44); |
||||
|
this.panel1.TabIndex = 4; |
||||
|
//
|
||||
|
// panel2
|
||||
|
//
|
||||
|
this.panel2.Controls.Add(this.resultTXT); |
||||
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; |
||||
|
this.panel2.Location = new System.Drawing.Point(0, 44); |
||||
|
this.panel2.Name = "panel2"; |
||||
|
this.panel2.Size = new System.Drawing.Size(384, 217); |
||||
|
this.panel2.TabIndex = 5; |
||||
|
//
|
||||
|
// Form1
|
||||
|
//
|
||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); |
||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
||||
|
this.ClientSize = new System.Drawing.Size(384, 261); |
||||
|
this.Controls.Add(this.panel2); |
||||
|
this.Controls.Add(this.panel1); |
||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); |
||||
|
this.Name = "Form1"; |
||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; |
||||
|
this.Text = "截图识字"; |
||||
|
this.Load += new System.EventHandler(this.Form1_Load); |
||||
|
this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); |
||||
|
this.contextMenuStrip1.ResumeLayout(false); |
||||
|
this.panel1.ResumeLayout(false); |
||||
|
this.panel1.PerformLayout(); |
||||
|
this.panel2.ResumeLayout(false); |
||||
|
this.ResumeLayout(false); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
private Button btn_start; |
||||
|
private Button btn_cfg; |
||||
|
private CheckBox isConj; |
||||
|
private RichTextBox resultTXT; |
||||
|
private NotifyIcon notifyIcon1; |
||||
|
private ContextMenuStrip contextMenuStrip1; |
||||
|
private ToolStripMenuItem 截图ToolStripMenuItem; |
||||
|
private ToolStripMenuItem 配置ToolStripMenuItem; |
||||
|
private ToolStripSeparator toolStripMenuItem1; |
||||
|
private ToolStripMenuItem 退出ToolStripMenuItem; |
||||
|
private Panel panel1; |
||||
|
private Panel panel2; |
||||
|
} |
||||
|
} |
@ -0,0 +1,148 @@ |
|||||
|
namespace nocr |
||||
|
{ |
||||
|
using Newtonsoft.Json; |
||||
|
public partial class Form1 : Form |
||||
|
{ |
||||
|
private String apikey; |
||||
|
private String skey; |
||||
|
private String token; |
||||
|
IniFile cfgfile; |
||||
|
|
||||
|
public Form1() |
||||
|
{ |
||||
|
InitializeComponent(); |
||||
|
} |
||||
|
private void Form1_Load(object sender, EventArgs e) |
||||
|
{ |
||||
|
try |
||||
|
{ |
||||
|
cfgfile = new IniFile("settings.ini"); |
||||
|
apikey = cfgfile.ReadString("account", "apikey", ""); |
||||
|
skey = cfgfile.ReadString("account", "secretkey", ""); |
||||
|
//MessageBox.Show(appid + ":" + skey);
|
||||
|
update_Token(apikey, skey); |
||||
|
} |
||||
|
catch(Exception ex) |
||||
|
{ |
||||
|
MessageBox.Show(ex.Message); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private void update_Token(String apikey, String secretkey) |
||||
|
{ |
||||
|
// 获取token
|
||||
|
String tk = null; |
||||
|
try |
||||
|
{ |
||||
|
String tkstr = AccessToken.getAccessToken(apikey, skey); |
||||
|
if (tkstr.IndexOf("error") > 0) |
||||
|
{ |
||||
|
MessageBox.Show("token未获取,请检查网络或配置参数!"); |
||||
|
} |
||||
|
else if (tkstr.IndexOf("access_token") > 0) |
||||
|
{ |
||||
|
JsonSerializerSettings settings = new JsonSerializerSettings(); |
||||
|
var tkjson = JsonConvert.DeserializeObject<dynamic>(tkstr, settings); |
||||
|
token = tkjson.access_token.ToString(); |
||||
|
// Console.WriteLine(tkstr);
|
||||
|
} |
||||
|
} |
||||
|
catch |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void notifyIcon1_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
this.contextMenuStrip1.Show(MousePosition.X, MousePosition.Y); |
||||
|
} |
||||
|
|
||||
|
private void Form1_SizeChanged(object sender, EventArgs e) |
||||
|
{ |
||||
|
if (this.WindowState == FormWindowState.Minimized) |
||||
|
{ |
||||
|
this.Hide(); |
||||
|
this.notifyIcon1.Visible = true; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
Application.Exit(); |
||||
|
} |
||||
|
|
||||
|
private void 截图ToolStripMenuItem_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
this.btn_start_Click(sender, e); |
||||
|
} |
||||
|
|
||||
|
private void btn_cfg_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
Form cfgfm = new Form3(); |
||||
|
cfgfm.FormClosed += new FormClosedEventHandler(cfgfm_FormClosed); |
||||
|
cfgfm.Show(); |
||||
|
} |
||||
|
|
||||
|
private void 配置ToolStripMenuItem_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
this.btn_cfg_Click(sender, e); |
||||
|
} |
||||
|
|
||||
|
private void btn_start_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
this.Hide(); |
||||
|
this.notifyIcon1.Visible = true; |
||||
|
Form2 fm2 = new Form2(); |
||||
|
fm2.FormClosed += new FormClosedEventHandler(fm2_FormClosed); |
||||
|
fm2.Show(); |
||||
|
//MessageBox.Show("start capture!");
|
||||
|
} |
||||
|
|
||||
|
void fm2_FormClosed(object sender, FormClosedEventArgs e) |
||||
|
{ |
||||
|
this.Show(); |
||||
|
// 加载图片,上传识别
|
||||
|
this.resultTXT.Clear(); |
||||
|
String ocrtxt = ""; |
||||
|
String result = GeneralBasic.generalBasic(token, Path.Combine(Path.GetTempPath(), "nscreenshot.jpg")); |
||||
|
if (result.IndexOf("error_code") > 0 && (result.IndexOf("110") > 0 || result.IndexOf("111") > 0)) |
||||
|
{ |
||||
|
// token过期,更新token
|
||||
|
update_Token(apikey, skey); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
try |
||||
|
{ |
||||
|
JsonSerializerSettings settings = new JsonSerializerSettings(); |
||||
|
var rsjson = JsonConvert.DeserializeObject<dynamic>(result, settings); |
||||
|
|
||||
|
if (rsjson != null && (int)rsjson.words_result_num > 0) |
||||
|
{ |
||||
|
for(int i = 0; i < (int)rsjson.words_result_num; i++) |
||||
|
{ |
||||
|
ocrtxt = ocrtxt + rsjson.words_result[i].words.ToString() + "\n"; |
||||
|
} |
||||
|
if (isConj.Checked) |
||||
|
{ |
||||
|
ocrtxt = ocrtxt.Replace("\n", ""); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
catch |
||||
|
{ |
||||
|
MessageBox.Show("服务请求失败,请稍后重试。"); |
||||
|
} |
||||
|
} |
||||
|
this.resultTXT.Text = ocrtxt; |
||||
|
this.WindowState = FormWindowState.Normal; |
||||
|
} |
||||
|
|
||||
|
void cfgfm_FormClosed(object sender, FormClosedEventArgs e) |
||||
|
{ |
||||
|
// 读取配置文件,更新配置参数
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
@ -0,0 +1,115 @@ |
|||||
|
<root> |
||||
|
<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="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
||||
|
<value>17, 17</value> |
||||
|
</metadata> |
||||
|
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
||||
|
<value>135, 17</value> |
||||
|
</metadata> |
||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |
||||
|
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
|
<value> |
||||
|
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABMLAAATCwAAAAAAAAAA |
||||
|
AAAZIqgFEh2MPg8Zel8PGXpfDhdyWgcKMSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAAHDDpMxgv4rYYLt+pGS/kpBkv4pUXJrgeJDv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAAAAAAABwx7kgXLNWnERZvJCQz+gwjMe4LJTHwAiQx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAAAAAAAAAAAAAcMe5IFyzUpAgIKhcMD0IAAgFLAggIZgIJCW4CCQluAAkJbgEJCW4DCQluAQkJ |
||||
|
bgIJCW4BCQluAAAAAAAAAAAAHDDsRRku4JMOD0wMAQBsAQkJbjwJCW5pCQluQwkJbgAJCW4KCQluTAkJ |
||||
|
bokJCW5yCQluEAkJbgAAAAAAAAAAAB4w6hEdMOoiLC/qAQwNfAAJCW4OCQlucgkJbiIJCW4ACQluAAkJ |
||||
|
bjgJCW6/CQluSQkJbgAJCW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAJCW4ACQluAAkJbjgJCW4wCQluBwkJ |
||||
|
bg0JCW5mCQlupQkJbgsJCW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJbgAJCW4TCQlucgkJ |
||||
|
blQJCW5fCQlupgkJbmUJCW4ACQluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCW4ACQluAQkJ |
||||
|
bkcJCW4YCQluRgkJbrQJCW4iCQluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJ |
||||
|
bgAJCW4mCQluQwkJbn4JCW6NCQluAQkJbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAJCW4ACQluCQkJbmUJCW6yCQluRQkJbgAAAAAADAoyAAAAAAAFBBQNAQEDFAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAACQluAAkJbhkJCW6MCQluqwkJbg8JCW4AAAAAACQv5gAkMvQIGCvScw4WbUQAAAAAAAAAAAAA |
||||
|
AAAAAAAAAAAAAAkJbgAJCW4FCQluJgkJbiYJCW4ACQluAAAAAAAkL+kAIjDuDRkv5KURHY5SAAAAAAAA |
||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRZwADY5/wAJCS4RBAQWJQwQUTEYLdyrEh6TTwAA |
||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8v5gAfMOoNGS3cgxcr0KgXK9KrGC/ktRgn |
||||
|
vC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhMOoAIDDqBhwx7DwcMe5IHDHuSBww |
||||
|
6zIiL+YEAf8AAAP/AAAD/wAAEAcAAAAHAAARjwAA+A8AAPgfAAD4HwAA/B8AAPw8AAD8OAAA/DgAAP/A |
||||
|
AAD/wAAA/8AAAA== |
||||
|
</value> |
||||
|
</data> |
||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
|
<value> |
||||
|
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABMLAAATCwAAAAAAAAAA |
||||
|
AAAZIqgFEh2MPg8Zel8PGXpfDhdyWgcKMSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAAHDDpMxgv4rYYLt+pGS/kpBkv4pUXJrgeJDv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAAAAAAABwx7kgXLNWnERZvJCQz+gwjMe4LJTHwAiQx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAAAAAAAAAAAAAcMe5IFyzUpAgIKhcMD0IAAgFLAggIZgIJCW4CCQluAAkJbgEJCW4DCQluAQkJ |
||||
|
bgIJCW4BCQluAAAAAAAAAAAAHDDsRRku4JMOD0wMAQBsAQkJbjwJCW5pCQluQwkJbgAJCW4KCQluTAkJ |
||||
|
bokJCW5yCQluEAkJbgAAAAAAAAAAAB4w6hEdMOoiLC/qAQwNfAAJCW4OCQlucgkJbiIJCW4ACQluAAkJ |
||||
|
bjgJCW6/CQluSQkJbgAJCW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAJCW4ACQluAAkJbjgJCW4wCQluBwkJ |
||||
|
bg0JCW5mCQlupQkJbgsJCW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJbgAJCW4TCQlucgkJ |
||||
|
blQJCW5fCQlupgkJbmUJCW4ACQluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCW4ACQluAQkJ |
||||
|
bkcJCW4YCQluRgkJbrQJCW4iCQluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJ |
||||
|
bgAJCW4mCQluQwkJbn4JCW6NCQluAQkJbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
|
AAAJCW4ACQluCQkJbmUJCW6yCQluRQkJbgAAAAAADAoyAAAAAAAFBBQNAQEDFAAAAAAAAAAAAAAAAAAA |
||||
|
AAAAAAAACQluAAkJbhkJCW6MCQluqwkJbg8JCW4AAAAAACQv5gAkMvQIGCvScw4WbUQAAAAAAAAAAAAA |
||||
|
AAAAAAAAAAAAAAkJbgAJCW4FCQluJgkJbiYJCW4ACQluAAAAAAAkL+kAIjDuDRkv5KURHY5SAAAAAAAA |
||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRZwADY5/wAJCS4RBAQWJQwQUTEYLdyrEh6TTwAA |
||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8v5gAfMOoNGS3cgxcr0KgXK9KrGC/ktRgn |
||||
|
vC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhMOoAIDDqBhwx7DwcMe5IHDHuSBww |
||||
|
6zIiL+YEAf8AAAP/AAAD/wAAEAcAAAAHAAARjwAA+A8AAPgfAAD4HwAA/B8AAPw8AAD8OAAA/DgAAP/A |
||||
|
AAD/wAAA/8AAAA== |
||||
|
</value> |
||||
|
</data> |
||||
|
</root> |
@ -0,0 +1,55 @@ |
|||||
|
namespace nocr |
||||
|
{ |
||||
|
partial class Form2 |
||||
|
{ |
||||
|
/// <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.SuspendLayout(); |
||||
|
//
|
||||
|
// Form2
|
||||
|
//
|
||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); |
||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
||||
|
this.ClientSize = new System.Drawing.Size(584, 361); |
||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; |
||||
|
this.Name = "Form2"; |
||||
|
this.Text = "Form2"; |
||||
|
this.WindowState = System.Windows.Forms.FormWindowState.Maximized; |
||||
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed); |
||||
|
this.Load += new System.EventHandler(this.Form2_Load); |
||||
|
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyDown); |
||||
|
this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseDoubleClick); |
||||
|
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseDown); |
||||
|
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseMove); |
||||
|
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseUp); |
||||
|
this.ResumeLayout(false); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
} |
||||
|
} |
@ -0,0 +1,100 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel; |
||||
|
using System.Data; |
||||
|
using System.Drawing; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.Windows.Forms; |
||||
|
using System.IO; |
||||
|
|
||||
|
namespace nocr |
||||
|
{ |
||||
|
public partial class Form2 : Form |
||||
|
{ |
||||
|
private bool down = false; |
||||
|
private Point firstPoint; |
||||
|
private Pen p = new Pen(Color.Red, 2); |
||||
|
private Graphics gra; |
||||
|
private Rectangle rectangle; //存储用户截取的矩形
|
||||
|
|
||||
|
public Form2() |
||||
|
{ |
||||
|
InitializeComponent(); |
||||
|
} |
||||
|
|
||||
|
private void Form2_Load(object sender, EventArgs e) |
||||
|
{ |
||||
|
Image img = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); |
||||
|
Graphics g = Graphics.FromImage(img); |
||||
|
this.Opacity = 0.01; |
||||
|
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.PrimaryScreen.Bounds.Size); |
||||
|
// img.Save(@"D:\test.jpg");
|
||||
|
this.BackgroundImage = img; |
||||
|
this.Opacity = 1; |
||||
|
//this.FormBorderStyle = FormBorderStyle.None;
|
||||
|
//this.Bounds = Screen.PrimaryScreen.Bounds;
|
||||
|
gra = this.CreateGraphics(); // 在主背景下加一层绘制选区
|
||||
|
} |
||||
|
|
||||
|
public void Form2_FormClosed(object sender, FormClosedEventArgs e) |
||||
|
{ |
||||
|
this.Dispose(); |
||||
|
} |
||||
|
|
||||
|
private void Form2_MouseDown(object sender, MouseEventArgs e) |
||||
|
{ |
||||
|
if (e.Button == MouseButtons.Left) |
||||
|
{ |
||||
|
down = true; |
||||
|
firstPoint = e.Location; |
||||
|
} |
||||
|
else if(e.Button == MouseButtons.Right) |
||||
|
{ |
||||
|
// 点击鼠标右键退回Form1
|
||||
|
this.Close(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void Form2_MouseUp(object sender, MouseEventArgs e) |
||||
|
{ |
||||
|
if (e.Button == MouseButtons.Left) |
||||
|
{ |
||||
|
down = false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void Form2_MouseMove(object sender, MouseEventArgs e) |
||||
|
{ |
||||
|
if (down) |
||||
|
{ |
||||
|
gra.DrawImage(this.BackgroundImage, 0, 0); |
||||
|
rectangle = new Rectangle(Math.Min(firstPoint.X, e.X), Math.Min(e.Y, firstPoint.Y), Math.Abs(e.X - firstPoint.X), Math.Abs(e.Y - firstPoint.Y)); |
||||
|
gra.DrawRectangle(p, rectangle); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void Form2_KeyDown(object sender, KeyEventArgs e) |
||||
|
{ |
||||
|
if(e.KeyCode == Keys.Escape) |
||||
|
{ |
||||
|
this.Close(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void Form2_MouseDoubleClick(object sender, MouseEventArgs e) |
||||
|
{ |
||||
|
if (rectangle.Width != 0 && rectangle.Height != 0) |
||||
|
{ |
||||
|
gra.DrawImage(this.BackgroundImage, 0, 0); |
||||
|
Image im = new Bitmap(rectangle.Width, rectangle.Height); |
||||
|
Graphics g = Graphics.FromImage(im); |
||||
|
g.CopyFromScreen(rectangle.Location, new Point(0, 0), rectangle.Size); |
||||
|
im.Save(Path.Combine(Path.GetTempPath(), "nscreenshot.jpg")); |
||||
|
// Clipboard.SetImage(im);
|
||||
|
this.Close(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,60 @@ |
|||||
|
<root> |
||||
|
<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> |
||||
|
</root> |
@ -0,0 +1,132 @@ |
|||||
|
namespace nocr |
||||
|
{ |
||||
|
partial class Form3 |
||||
|
{ |
||||
|
/// <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.label1 = new System.Windows.Forms.Label(); |
||||
|
this.apikey = new System.Windows.Forms.TextBox(); |
||||
|
this.label2 = new System.Windows.Forms.Label(); |
||||
|
this.secretkey = new System.Windows.Forms.TextBox(); |
||||
|
this.label3 = new System.Windows.Forms.Label(); |
||||
|
this.btn_save = new System.Windows.Forms.Button(); |
||||
|
this.btn_close = new System.Windows.Forms.Button(); |
||||
|
this.SuspendLayout(); |
||||
|
//
|
||||
|
// label1
|
||||
|
//
|
||||
|
this.label1.AutoSize = true; |
||||
|
this.label1.Location = new System.Drawing.Point(0, 0); |
||||
|
this.label1.Name = "label1"; |
||||
|
this.label1.Size = new System.Drawing.Size(128, 17); |
||||
|
this.label1.TabIndex = 0; |
||||
|
this.label1.Text = "百度开发者账号授权码"; |
||||
|
//
|
||||
|
// apikey
|
||||
|
//
|
||||
|
this.apikey.Location = new System.Drawing.Point(73, 21); |
||||
|
this.apikey.Name = "apikey"; |
||||
|
this.apikey.Size = new System.Drawing.Size(213, 23); |
||||
|
this.apikey.TabIndex = 1; |
||||
|
//
|
||||
|
// label2
|
||||
|
//
|
||||
|
this.label2.AutoSize = true; |
||||
|
this.label2.Location = new System.Drawing.Point(9, 23); |
||||
|
this.label2.Name = "label2"; |
||||
|
this.label2.Size = new System.Drawing.Size(52, 17); |
||||
|
this.label2.TabIndex = 2; |
||||
|
this.label2.Text = "API Key"; |
||||
|
//
|
||||
|
// secretkey
|
||||
|
//
|
||||
|
this.secretkey.Location = new System.Drawing.Point(73, 50); |
||||
|
this.secretkey.Name = "secretkey"; |
||||
|
this.secretkey.Size = new System.Drawing.Size(213, 23); |
||||
|
this.secretkey.TabIndex = 3; |
||||
|
//
|
||||
|
// label3
|
||||
|
//
|
||||
|
this.label3.AutoSize = true; |
||||
|
this.label3.Location = new System.Drawing.Point(0, 53); |
||||
|
this.label3.Name = "label3"; |
||||
|
this.label3.Size = new System.Drawing.Size(69, 17); |
||||
|
this.label3.TabIndex = 4; |
||||
|
this.label3.Text = "Secret Key"; |
||||
|
//
|
||||
|
// btn_save
|
||||
|
//
|
||||
|
this.btn_save.Location = new System.Drawing.Point(73, 83); |
||||
|
this.btn_save.Name = "btn_save"; |
||||
|
this.btn_save.Size = new System.Drawing.Size(75, 23); |
||||
|
this.btn_save.TabIndex = 5; |
||||
|
this.btn_save.Text = "设 置"; |
||||
|
this.btn_save.UseVisualStyleBackColor = true; |
||||
|
this.btn_save.Click += new System.EventHandler(this.btn_save_Click); |
||||
|
//
|
||||
|
// btn_close
|
||||
|
//
|
||||
|
this.btn_close.Location = new System.Drawing.Point(165, 83); |
||||
|
this.btn_close.Name = "btn_close"; |
||||
|
this.btn_close.Size = new System.Drawing.Size(75, 23); |
||||
|
this.btn_close.TabIndex = 6; |
||||
|
this.btn_close.Text = "关 闭"; |
||||
|
this.btn_close.UseVisualStyleBackColor = true; |
||||
|
this.btn_close.Click += new System.EventHandler(this.btn_close_Click); |
||||
|
//
|
||||
|
// Form3
|
||||
|
//
|
||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); |
||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
||||
|
this.ClientSize = new System.Drawing.Size(298, 118); |
||||
|
this.Controls.Add(this.btn_close); |
||||
|
this.Controls.Add(this.btn_save); |
||||
|
this.Controls.Add(this.label3); |
||||
|
this.Controls.Add(this.secretkey); |
||||
|
this.Controls.Add(this.label2); |
||||
|
this.Controls.Add(this.apikey); |
||||
|
this.Controls.Add(this.label1); |
||||
|
this.Name = "Form3"; |
||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; |
||||
|
this.Text = "参数配置"; |
||||
|
this.Load += new System.EventHandler(this.Form3_Load); |
||||
|
this.ResumeLayout(false); |
||||
|
this.PerformLayout(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
private Label label1; |
||||
|
private TextBox apikey; |
||||
|
private Label label2; |
||||
|
private TextBox secretkey; |
||||
|
private Label label3; |
||||
|
private Button btn_save; |
||||
|
private Button btn_close; |
||||
|
} |
||||
|
} |
@ -0,0 +1,54 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel; |
||||
|
using System.Data; |
||||
|
using System.Drawing; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.Windows.Forms; |
||||
|
|
||||
|
namespace nocr |
||||
|
{ |
||||
|
public partial class Form3 : Form |
||||
|
{ |
||||
|
IniFile cfgfile; |
||||
|
public Form3() |
||||
|
{ |
||||
|
InitializeComponent(); |
||||
|
} |
||||
|
|
||||
|
private void btn_close_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
this.Close(); |
||||
|
} |
||||
|
|
||||
|
private void btn_save_Click(object sender, EventArgs e) |
||||
|
{ |
||||
|
// 更新ini文件配置,修改Form1的appid和skey
|
||||
|
if(apikey.Text != "" && secretkey.Text != "") |
||||
|
{ |
||||
|
IniFile cfgfile = new IniFile("settings.ini"); |
||||
|
cfgfile.WriteString("account", "apikey", apikey.Text.Trim()); |
||||
|
cfgfile.WriteString("account", "secretkey", apikey.Text.Trim()); |
||||
|
MessageBox.Show("参数设置完毕,应用重启后生效!"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void Form3_Load(object sender, EventArgs e) |
||||
|
{ |
||||
|
try |
||||
|
{ |
||||
|
cfgfile = new IniFile("settings.ini"); |
||||
|
String apikey = cfgfile.ReadString("account", "apikey", ""); |
||||
|
String skey = cfgfile.ReadString("account", "secretkey", ""); |
||||
|
this.apikey.Text = apikey; |
||||
|
this.secretkey.Text = skey; |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
MessageBox.Show("文件读取失败,请检查配置文件"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,60 @@ |
|||||
|
<root> |
||||
|
<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> |
||||
|
</root> |
@ -0,0 +1,209 @@ |
|||||
|
using System; |
||||
|
using System.IO; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Runtime.InteropServices; |
||||
|
using System.Text; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Specialized; |
||||
|
|
||||
|
namespace nocr |
||||
|
{ |
||||
|
public class IniFile |
||||
|
{ |
||||
|
public string FileName; //INI文件名
|
||||
|
//声明读写INI文件的API函数
|
||||
|
[DllImport("kernel32")] |
||||
|
private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath); |
||||
|
[DllImport("kernel32")] |
||||
|
private static extern int GetPrivateProfileString(string section, string key, string def, byte[] retVal, int size, string filePath); |
||||
|
//类的构造函数,传递INI文件名
|
||||
|
public IniFile(string AFileName) |
||||
|
{ |
||||
|
// 判断文件是否存在
|
||||
|
FileInfo fileInfo = new FileInfo(AFileName); |
||||
|
//Todo:搞清枚举的用法
|
||||
|
if ((!fileInfo.Exists)) |
||||
|
{ //|| (FileAttributes.Directory in fileInfo.Attributes))
|
||||
|
//文件不存在,建立文件
|
||||
|
System.IO.StreamWriter sw = new System.IO.StreamWriter(AFileName, false, System.Text.Encoding.Default); |
||||
|
try |
||||
|
{ |
||||
|
sw.Write("#表格配置档案"); |
||||
|
sw.Close(); |
||||
|
} |
||||
|
|
||||
|
catch |
||||
|
{ |
||||
|
throw (new ApplicationException("Ini文件不存在")); |
||||
|
} |
||||
|
} |
||||
|
//必须是完全路径,不能是相对路径
|
||||
|
FileName = fileInfo.FullName; |
||||
|
} |
||||
|
//写INI文件
|
||||
|
public void WriteString(string Section, string Ident, string Value) |
||||
|
{ |
||||
|
if (!WritePrivateProfileString(Section, Ident, Value, FileName)) |
||||
|
{ |
||||
|
|
||||
|
throw (new ApplicationException("写Ini文件出错")); |
||||
|
} |
||||
|
} |
||||
|
//读取INI文件指定
|
||||
|
public string ReadString(string Section, string Ident, string Default) |
||||
|
{ |
||||
|
Byte[] Buffer = new Byte[65535]; |
||||
|
int bufLen = GetPrivateProfileString(Section, Ident, Default, Buffer, Buffer.GetUpperBound(0), FileName); |
||||
|
//必须设定0(系统默认的代码页)的编码方式,否则无法支持中文
|
||||
|
string s = Encoding.GetEncoding(0).GetString(Buffer); |
||||
|
s = s.Substring(0, bufLen); |
||||
|
return s.Trim(); |
||||
|
} |
||||
|
|
||||
|
//读整数
|
||||
|
public int ReadInteger(string Section, string Ident, int Default) |
||||
|
{ |
||||
|
string intStr = ReadString(Section, Ident, Convert.ToString(Default)); |
||||
|
try |
||||
|
{ |
||||
|
return Convert.ToInt32(intStr); |
||||
|
|
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
Console.WriteLine(ex.Message); |
||||
|
return Default; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//写整数
|
||||
|
public void WriteInteger(string Section, string Ident, int Value) |
||||
|
{ |
||||
|
WriteString(Section, Ident, Value.ToString()); |
||||
|
} |
||||
|
|
||||
|
//读布尔
|
||||
|
public bool ReadBool(string Section, string Ident, bool Default) |
||||
|
{ |
||||
|
try |
||||
|
{ |
||||
|
return Convert.ToBoolean(ReadString(Section, Ident, Convert.ToString(Default))); |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
Console.WriteLine(ex.Message); |
||||
|
return Default; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//写Bool
|
||||
|
public void WriteBool(string Section, string Ident, bool Value) |
||||
|
{ |
||||
|
WriteString(Section, Ident, Convert.ToString(Value)); |
||||
|
} |
||||
|
|
||||
|
//从Ini文件中,将指定的Section名称中的所有Ident添加到列表中
|
||||
|
public void ReadSection(string Section, StringCollection Idents) |
||||
|
{ |
||||
|
Byte[] Buffer = new Byte[16384]; |
||||
|
//Idents.Clear();
|
||||
|
|
||||
|
int bufLen = GetPrivateProfileString(Section, null, null, Buffer, Buffer.GetUpperBound(0), |
||||
|
FileName); |
||||
|
//对Section进行解析
|
||||
|
GetStringsFromBuffer(Buffer, bufLen, Idents); |
||||
|
} |
||||
|
|
||||
|
private void GetStringsFromBuffer(Byte[] Buffer, int bufLen, StringCollection Strings) |
||||
|
{ |
||||
|
Strings.Clear(); |
||||
|
if (bufLen != 0) |
||||
|
{ |
||||
|
int start = 0; |
||||
|
for (int i = 0; i < bufLen; i++) |
||||
|
{ |
||||
|
if ((Buffer[i] == 0) && ((i - start) > 0)) |
||||
|
{ |
||||
|
String s = Encoding.GetEncoding(0).GetString(Buffer, start, i - start); |
||||
|
Strings.Add(s); |
||||
|
start = i + 1; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
//从Ini文件中,读取所有的Sections的名称
|
||||
|
public void ReadSections(StringCollection SectionList) |
||||
|
{ |
||||
|
//Note:必须得用Bytes来实现,StringBuilder只能取到第一个Section
|
||||
|
byte[] Buffer = new byte[65535]; |
||||
|
int bufLen = 0; |
||||
|
bufLen = GetPrivateProfileString(null, null, null, Buffer, |
||||
|
Buffer.GetUpperBound(0), FileName); |
||||
|
GetStringsFromBuffer(Buffer, bufLen, SectionList); |
||||
|
} |
||||
|
//读取指定的Section的所有Value到列表中
|
||||
|
public void ReadSectionValues(string Section, NameValueCollection Values) |
||||
|
{ |
||||
|
StringCollection KeyList = new StringCollection(); |
||||
|
ReadSection(Section, KeyList); |
||||
|
Values.Clear(); |
||||
|
foreach (string key in KeyList) |
||||
|
{ |
||||
|
Values.Add(key, ReadString(Section, key, "")); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
////读取指定的Section的所有Value到列表中,
|
||||
|
//public void ReadSectionValues(string Section, NameValueCollection Values,char splitString)
|
||||
|
//{ string sectionValue;
|
||||
|
// string[] sectionValueSplit;
|
||||
|
// StringCollection KeyList = new StringCollection();
|
||||
|
// ReadSection(Section, KeyList);
|
||||
|
// Values.Clear();
|
||||
|
// foreach (string key in KeyList)
|
||||
|
// {
|
||||
|
// sectionValue=ReadString(Section, key, "");
|
||||
|
// sectionValueSplit=sectionValue.Split(splitString);
|
||||
|
// Values.Add(key, sectionValueSplit[0].ToString(),sectionValueSplit[1].ToString());
|
||||
|
|
||||
|
// }
|
||||
|
//}
|
||||
|
//清除某个Section
|
||||
|
public void EraseSection(string Section) |
||||
|
{ |
||||
|
//
|
||||
|
if (!WritePrivateProfileString(Section, null, null, FileName)) |
||||
|
{ |
||||
|
|
||||
|
throw (new ApplicationException("无法清除Ini文件中的Section")); |
||||
|
} |
||||
|
} |
||||
|
//删除某个Section下的键
|
||||
|
public void DeleteKey(string Section, string Ident) |
||||
|
{ |
||||
|
WritePrivateProfileString(Section, Ident, null, FileName); |
||||
|
} |
||||
|
//Note:对于Win9X,来说需要实现UpdateFile方法将缓冲中的数据写入文件
|
||||
|
//在Win NT, 2000和XP上,都是直接写文件,没有缓冲,所以,无须实现UpdateFile
|
||||
|
//执行完对Ini文件的修改之后,应该调用本方法更新缓冲区。
|
||||
|
public void UpdateFile() |
||||
|
{ |
||||
|
WritePrivateProfileString(null, null, null, FileName); |
||||
|
} |
||||
|
|
||||
|
//检查某个Section下的某个键值是否存在
|
||||
|
public bool ValueExists(string Section, string Ident) |
||||
|
{ |
||||
|
//
|
||||
|
StringCollection Idents = new StringCollection(); |
||||
|
ReadSection(Section, Idents); |
||||
|
return Idents.IndexOf(Ident) > -1; |
||||
|
} |
||||
|
|
||||
|
//确保资源的释放
|
||||
|
~IniFile() |
||||
|
{ |
||||
|
UpdateFile(); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
namespace nocr |
||||
|
{ |
||||
|
internal static class Program |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// The main entry point for the application.
|
||||
|
/// </summary>
|
||||
|
[STAThread] |
||||
|
static void Main() |
||||
|
{ |
||||
|
// To customize application configuration such as set high DPI settings or default font,
|
||||
|
// see https://aka.ms/applicationconfiguration.
|
||||
|
ApplicationConfiguration.Initialize(); |
||||
|
Application.Run(new Form1()); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<!-- |
||||
|
https://go.microsoft.com/fwlink/?LinkID=208121. |
||||
|
--> |
||||
|
<Project> |
||||
|
<PropertyGroup> |
||||
|
<Configuration>Release</Configuration> |
||||
|
<Platform>Any CPU</Platform> |
||||
|
<PublishDir>bin\Release\net6.0-windows\publish\</PublishDir> |
||||
|
<PublishProtocol>FileSystem</PublishProtocol> |
||||
|
</PropertyGroup> |
||||
|
</Project> |
@ -0,0 +1,9 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<!-- |
||||
|
https://go.microsoft.com/fwlink/?LinkID=208121. |
||||
|
--> |
||||
|
<Project> |
||||
|
<PropertyGroup> |
||||
|
<History>True|2022-03-19T12:49:29.3031191Z;</History> |
||||
|
</PropertyGroup> |
||||
|
</Project> |
@ -0,0 +1,63 @@ |
|||||
|
//------------------------------------------------------------------------------
|
||||
|
// <auto-generated>
|
||||
|
// 此代码由工具生成。
|
||||
|
// 运行时版本:4.0.30319.42000
|
||||
|
//
|
||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
|
// 重新生成代码,这些更改将会丢失。
|
||||
|
// </auto-generated>
|
||||
|
//------------------------------------------------------------------------------
|
||||
|
|
||||
|
namespace nocr.Properties { |
||||
|
using System; |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||
|
/// </summary>
|
||||
|
// 此类是由 StronglyTypedResourceBuilder
|
||||
|
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||
|
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||
|
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] |
||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
||||
|
internal class Resources { |
||||
|
|
||||
|
private static global::System.Resources.ResourceManager resourceMan; |
||||
|
|
||||
|
private static global::System.Globalization.CultureInfo resourceCulture; |
||||
|
|
||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
||||
|
internal Resources() { |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||
|
/// </summary>
|
||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
||||
|
internal static global::System.Resources.ResourceManager ResourceManager { |
||||
|
get { |
||||
|
if (object.ReferenceEquals(resourceMan, null)) { |
||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("nocr.Properties.Resources", typeof(Resources).Assembly); |
||||
|
resourceMan = temp; |
||||
|
} |
||||
|
return resourceMan; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||
|
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||
|
/// </summary>
|
||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
||||
|
internal static global::System.Globalization.CultureInfo Culture { |
||||
|
get { |
||||
|
return resourceCulture; |
||||
|
} |
||||
|
set { |
||||
|
resourceCulture = value; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,120 @@ |
|||||
|
<?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> |
||||
|
</root> |
Binary file not shown.
@ -0,0 +1,41 @@ |
|||||
|
{ |
||||
|
"runtimeTarget": { |
||||
|
"name": ".NETCoreApp,Version=v6.0", |
||||
|
"signature": "" |
||||
|
}, |
||||
|
"compilationOptions": {}, |
||||
|
"targets": { |
||||
|
".NETCoreApp,Version=v6.0": { |
||||
|
"nocr/1.0.0": { |
||||
|
"dependencies": { |
||||
|
"Newtonsoft.Json": "13.0.1" |
||||
|
}, |
||||
|
"runtime": { |
||||
|
"nocr.dll": {} |
||||
|
} |
||||
|
}, |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"runtime": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": { |
||||
|
"assemblyVersion": "13.0.0.0", |
||||
|
"fileVersion": "13.0.1.25517" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"libraries": { |
||||
|
"nocr/1.0.0": { |
||||
|
"type": "project", |
||||
|
"serviceable": false, |
||||
|
"sha512": "" |
||||
|
}, |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"type": "package", |
||||
|
"serviceable": true, |
||||
|
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", |
||||
|
"path": "newtonsoft.json/13.0.1", |
||||
|
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,15 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "net6.0", |
||||
|
"frameworks": [ |
||||
|
{ |
||||
|
"name": "Microsoft.NETCore.App", |
||||
|
"version": "6.0.0" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Microsoft.WindowsDesktop.App", |
||||
|
"version": "6.0.0" |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
[account] |
||||
|
apikey=zzMsFjeXqci8GTO2Trhz3He6 |
||||
|
secretkey=cyFMhGEjw6OuCFMECmH5xzMff9sm8DpT |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,41 @@ |
|||||
|
{ |
||||
|
"runtimeTarget": { |
||||
|
"name": ".NETCoreApp,Version=v6.0", |
||||
|
"signature": "" |
||||
|
}, |
||||
|
"compilationOptions": {}, |
||||
|
"targets": { |
||||
|
".NETCoreApp,Version=v6.0": { |
||||
|
"nocr/1.0.0": { |
||||
|
"dependencies": { |
||||
|
"Newtonsoft.Json": "13.0.1" |
||||
|
}, |
||||
|
"runtime": { |
||||
|
"nocr.dll": {} |
||||
|
} |
||||
|
}, |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"runtime": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": { |
||||
|
"assemblyVersion": "13.0.0.0", |
||||
|
"fileVersion": "13.0.1.25517" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"libraries": { |
||||
|
"nocr/1.0.0": { |
||||
|
"type": "project", |
||||
|
"serviceable": false, |
||||
|
"sha512": "" |
||||
|
}, |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"type": "package", |
||||
|
"serviceable": true, |
||||
|
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", |
||||
|
"path": "newtonsoft.json/13.0.1", |
||||
|
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,18 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "net6.0", |
||||
|
"frameworks": [ |
||||
|
{ |
||||
|
"name": "Microsoft.NETCore.App", |
||||
|
"version": "6.0.0" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Microsoft.WindowsDesktop.App", |
||||
|
"version": "6.0.0" |
||||
|
} |
||||
|
], |
||||
|
"configProperties": { |
||||
|
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
@ -0,0 +1,41 @@ |
|||||
|
{ |
||||
|
"runtimeTarget": { |
||||
|
"name": ".NETCoreApp,Version=v6.0", |
||||
|
"signature": "" |
||||
|
}, |
||||
|
"compilationOptions": {}, |
||||
|
"targets": { |
||||
|
".NETCoreApp,Version=v6.0": { |
||||
|
"nocr/1.0.0": { |
||||
|
"dependencies": { |
||||
|
"Newtonsoft.Json": "13.0.1" |
||||
|
}, |
||||
|
"runtime": { |
||||
|
"nocr.dll": {} |
||||
|
} |
||||
|
}, |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"runtime": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": { |
||||
|
"assemblyVersion": "13.0.0.0", |
||||
|
"fileVersion": "13.0.1.25517" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"libraries": { |
||||
|
"nocr/1.0.0": { |
||||
|
"type": "project", |
||||
|
"serviceable": false, |
||||
|
"sha512": "" |
||||
|
}, |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"type": "package", |
||||
|
"serviceable": true, |
||||
|
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", |
||||
|
"path": "newtonsoft.json/13.0.1", |
||||
|
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,18 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "net6.0", |
||||
|
"frameworks": [ |
||||
|
{ |
||||
|
"name": "Microsoft.NETCore.App", |
||||
|
"version": "6.0.0" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Microsoft.WindowsDesktop.App", |
||||
|
"version": "6.0.0" |
||||
|
} |
||||
|
], |
||||
|
"configProperties": { |
||||
|
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
[account] |
||||
|
apikey=zzMsFjeXqci8GTO2Trhz3He6 |
||||
|
secretkey=cyFMhGEjw6OuCFMECmH5xzMff9sm8DpT |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 17 KiB |
@ -0,0 +1,35 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<OutputType>WinExe</OutputType> |
||||
|
<TargetFramework>net6.0-windows</TargetFramework> |
||||
|
<Nullable>enable</Nullable> |
||||
|
<UseWindowsForms>true</UseWindowsForms> |
||||
|
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
<ApplicationIcon>favicon48.ico</ApplicationIcon> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<Content Include="favicon48.ico" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<Compile Update="Properties\Resources.Designer.cs"> |
||||
|
<DesignTime>True</DesignTime> |
||||
|
<AutoGen>True</AutoGen> |
||||
|
<DependentUpon>Resources.resx</DependentUpon> |
||||
|
</Compile> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<EmbeddedResource Update="Properties\Resources.resx"> |
||||
|
<Generator>ResXFileCodeGenerator</Generator> |
||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput> |
||||
|
</EmbeddedResource> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
@ -0,0 +1,17 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<PropertyGroup> |
||||
|
<_LastSelectedProfileId>D:\code\nocr\nocr\nocr\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId> |
||||
|
</PropertyGroup> |
||||
|
<ItemGroup> |
||||
|
<Compile Update="Form1.cs"> |
||||
|
<SubType>Form</SubType> |
||||
|
</Compile> |
||||
|
<Compile Update="Form2.cs"> |
||||
|
<SubType>Form</SubType> |
||||
|
</Compile> |
||||
|
<Compile Update="Form3.cs"> |
||||
|
<SubType>Form</SubType> |
||||
|
</Compile> |
||||
|
</ItemGroup> |
||||
|
</Project> |
@ -0,0 +1,4 @@ |
|||||
|
// <autogenerated />
|
||||
|
using System; |
||||
|
using System.Reflection; |
||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")] |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,25 @@ |
|||||
|
//------------------------------------------------------------------------------
|
||||
|
// <auto-generated>
|
||||
|
// 此代码由工具生成。
|
||||
|
// 运行时版本:4.0.30319.42000
|
||||
|
//
|
||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
|
// 重新生成代码,这些更改将会丢失。
|
||||
|
// </auto-generated>
|
||||
|
//------------------------------------------------------------------------------
|
||||
|
|
||||
|
using System; |
||||
|
using System.Reflection; |
||||
|
|
||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("nocr")] |
||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] |
||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] |
||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] |
||||
|
[assembly: System.Reflection.AssemblyProductAttribute("nocr")] |
||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("nocr")] |
||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] |
||||
|
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] |
||||
|
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] |
||||
|
|
||||
|
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
|
@ -0,0 +1 @@ |
|||||
|
d42bfbe80b879b1bfc92f8e96893459b3bcf63c9 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,16 @@ |
|||||
|
is_global = true |
||||
|
build_property.ApplicationManifest = |
||||
|
build_property.StartupObject = |
||||
|
build_property.ApplicationDefaultFont = |
||||
|
build_property.ApplicationHighDpiMode = |
||||
|
build_property.ApplicationUseCompatibleTextRendering = |
||||
|
build_property.ApplicationVisualStyles = |
||||
|
build_property.TargetFramework = net6.0-windows |
||||
|
build_property.TargetPlatformMinVersion = 7.0 |
||||
|
build_property.UsingMicrosoftNETSdkWeb = |
||||
|
build_property.ProjectTypeGuids = |
||||
|
build_property.InvariantGlobalization = |
||||
|
build_property.PlatformNeutralAssembly = |
||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows |
||||
|
build_property.RootNamespace = nocr |
||||
|
build_property.ProjectDir = D:\code\nocr\nocr\nocr\ |
@ -0,0 +1,10 @@ |
|||||
|
// <auto-generated/>
|
||||
|
global using global::System; |
||||
|
global using global::System.Collections.Generic; |
||||
|
global using global::System.Drawing; |
||||
|
global using global::System.IO; |
||||
|
global using global::System.Linq; |
||||
|
global using global::System.Net.Http; |
||||
|
global using global::System.Threading; |
||||
|
global using global::System.Threading.Tasks; |
||||
|
global using global::System.Windows.Forms; |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@ |
|||||
|
83cc939cbbdee80ab8a64e3853310dc646cae55e |
@ -0,0 +1,22 @@ |
|||||
|
D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.exe |
||||
|
D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.deps.json |
||||
|
D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.runtimeconfig.json |
||||
|
D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.pdb |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.csproj.AssemblyReference.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.Form1.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.csproj.GenerateResource.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.GeneratedMSBuildEditorConfig.editorconfig |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.AssemblyInfoInputs.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.AssemblyInfo.cs |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.csproj.CoreCompileInputs.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\refint\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.pdb |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.genruntimeconfig.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\ref\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.Form2.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.Form3.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.Properties.Resources.resources |
||||
|
D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\Newtonsoft.Json.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Debug\net6.0-windows\nocr.csproj.CopyComplete |
Binary file not shown.
@ -0,0 +1,28 @@ |
|||||
|
{ |
||||
|
"runtimeTarget": { |
||||
|
"name": ".NETCoreApp,Version=v6.0", |
||||
|
"signature": "" |
||||
|
}, |
||||
|
"compilationOptions": {}, |
||||
|
"targets": { |
||||
|
".NETCoreApp,Version=v6.0": { |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"runtime": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": { |
||||
|
"assemblyVersion": "13.0.0.0", |
||||
|
"fileVersion": "13.0.1.25517" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"libraries": { |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"type": "package", |
||||
|
"serviceable": true, |
||||
|
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", |
||||
|
"path": "newtonsoft.json/13.0.1", |
||||
|
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "net6.0", |
||||
|
"frameworks": [ |
||||
|
{ |
||||
|
"name": "Microsoft.NETCore.App", |
||||
|
"version": "6.0.0" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Microsoft.WindowsDesktop.App", |
||||
|
"version": "6.0.0" |
||||
|
} |
||||
|
], |
||||
|
"additionalProbingPaths": [ |
||||
|
"C:\\Users\\Administrator\\.dotnet\\store\\|arch|\\|tfm|", |
||||
|
"C:\\Users\\Administrator\\.nuget\\packages" |
||||
|
], |
||||
|
"configProperties": { |
||||
|
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
@ -0,0 +1 @@ |
|||||
|
c26b02fd28522a82de0a6e294269639cad55da30 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,23 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd"> |
||||
|
<metadata> |
||||
|
<id>nocr</id> |
||||
|
<version>1.0.0</version> |
||||
|
<authors>nocr</authors> |
||||
|
<description>Package Description</description> |
||||
|
<dependencies> |
||||
|
<group targetFramework="net6.0-windows7.0"> |
||||
|
<dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" /> |
||||
|
</group> |
||||
|
</dependencies> |
||||
|
<frameworkReferences> |
||||
|
<group targetFramework="net6.0-windows7.0"> |
||||
|
<frameworkReference name="Microsoft.WindowsDesktop.App.WindowsForms" /> |
||||
|
</group> |
||||
|
</frameworkReferences> |
||||
|
</metadata> |
||||
|
<files> |
||||
|
<file src="D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.runtimeconfig.json" target="lib\net6.0-windows7.0\nocr.runtimeconfig.json" /> |
||||
|
<file src="D:\code\nocr\nocr\nocr\bin\Debug\net6.0-windows\nocr.dll" target="lib\net6.0-windows7.0\nocr.dll" /> |
||||
|
</files> |
||||
|
</package> |
@ -0,0 +1,4 @@ |
|||||
|
// <autogenerated />
|
||||
|
using System; |
||||
|
using System.Reflection; |
||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")] |
@ -0,0 +1,6 @@ |
|||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\publish\nocr.exe |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\publish\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\publish\nocr.deps.json |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\publish\nocr.runtimeconfig.json |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\publish\nocr.pdb |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\publish\Newtonsoft.Json.dll |
Binary file not shown.
@ -0,0 +1,25 @@ |
|||||
|
//------------------------------------------------------------------------------
|
||||
|
// <auto-generated>
|
||||
|
// 此代码由工具生成。
|
||||
|
// 运行时版本:4.0.30319.42000
|
||||
|
//
|
||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
|
// 重新生成代码,这些更改将会丢失。
|
||||
|
// </auto-generated>
|
||||
|
//------------------------------------------------------------------------------
|
||||
|
|
||||
|
using System; |
||||
|
using System.Reflection; |
||||
|
|
||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("nocr")] |
||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] |
||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] |
||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] |
||||
|
[assembly: System.Reflection.AssemblyProductAttribute("nocr")] |
||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("nocr")] |
||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] |
||||
|
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] |
||||
|
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] |
||||
|
|
||||
|
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
|
@ -0,0 +1 @@ |
|||||
|
cd8034ce82d74cd83f55792d72fdd3122f266937 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,16 @@ |
|||||
|
is_global = true |
||||
|
build_property.ApplicationManifest = |
||||
|
build_property.StartupObject = |
||||
|
build_property.ApplicationDefaultFont = |
||||
|
build_property.ApplicationHighDpiMode = |
||||
|
build_property.ApplicationUseCompatibleTextRendering = |
||||
|
build_property.ApplicationVisualStyles = |
||||
|
build_property.TargetFramework = net6.0-windows |
||||
|
build_property.TargetPlatformMinVersion = 7.0 |
||||
|
build_property.UsingMicrosoftNETSdkWeb = |
||||
|
build_property.ProjectTypeGuids = |
||||
|
build_property.InvariantGlobalization = |
||||
|
build_property.PlatformNeutralAssembly = |
||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows |
||||
|
build_property.RootNamespace = nocr |
||||
|
build_property.ProjectDir = D:\code\nocr\nocr\nocr\ |
@ -0,0 +1,10 @@ |
|||||
|
// <auto-generated/>
|
||||
|
global using global::System; |
||||
|
global using global::System.Collections.Generic; |
||||
|
global using global::System.Drawing; |
||||
|
global using global::System.IO; |
||||
|
global using global::System.Linq; |
||||
|
global using global::System.Net.Http; |
||||
|
global using global::System.Threading; |
||||
|
global using global::System.Threading.Tasks; |
||||
|
global using global::System.Windows.Forms; |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@ |
|||||
|
f4c101af840192e0b4d9a6d022eba70c146d6b87 |
@ -0,0 +1,22 @@ |
|||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\nocr.exe |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\nocr.deps.json |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\nocr.runtimeconfig.json |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\nocr.pdb |
||||
|
D:\code\nocr\nocr\nocr\bin\Release\net6.0-windows\Newtonsoft.Json.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.csproj.AssemblyReference.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.Form1.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.Form2.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.Form3.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.Properties.Resources.resources |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.csproj.GenerateResource.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.GeneratedMSBuildEditorConfig.editorconfig |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.AssemblyInfoInputs.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.AssemblyInfo.cs |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.csproj.CoreCompileInputs.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.csproj.CopyComplete |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\refint\nocr.dll |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.pdb |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\nocr.genruntimeconfig.cache |
||||
|
D:\code\nocr\nocr\nocr\obj\Release\net6.0-windows\ref\nocr.dll |
Binary file not shown.
@ -0,0 +1,28 @@ |
|||||
|
{ |
||||
|
"runtimeTarget": { |
||||
|
"name": ".NETCoreApp,Version=v6.0", |
||||
|
"signature": "" |
||||
|
}, |
||||
|
"compilationOptions": {}, |
||||
|
"targets": { |
||||
|
".NETCoreApp,Version=v6.0": { |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"runtime": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": { |
||||
|
"assemblyVersion": "13.0.0.0", |
||||
|
"fileVersion": "13.0.1.25517" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"libraries": { |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"type": "package", |
||||
|
"serviceable": true, |
||||
|
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", |
||||
|
"path": "newtonsoft.json/13.0.1", |
||||
|
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,23 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "net6.0", |
||||
|
"frameworks": [ |
||||
|
{ |
||||
|
"name": "Microsoft.NETCore.App", |
||||
|
"version": "6.0.0" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Microsoft.WindowsDesktop.App", |
||||
|
"version": "6.0.0" |
||||
|
} |
||||
|
], |
||||
|
"additionalProbingPaths": [ |
||||
|
"C:\\Users\\Administrator\\.dotnet\\store\\|arch|\\|tfm|", |
||||
|
"C:\\Users\\Administrator\\.nuget\\packages" |
||||
|
], |
||||
|
"configProperties": { |
||||
|
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false, |
||||
|
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
@ -0,0 +1 @@ |
|||||
|
78b042c1c9b54d1e71f81fa8a3a381becde20fa3 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,71 @@ |
|||||
|
{ |
||||
|
"format": 1, |
||||
|
"restore": { |
||||
|
"D:\\code\\nocr\\nocr\\nocr\\nocr.csproj": {} |
||||
|
}, |
||||
|
"projects": { |
||||
|
"D:\\code\\nocr\\nocr\\nocr\\nocr.csproj": { |
||||
|
"version": "1.0.0", |
||||
|
"restore": { |
||||
|
"projectUniqueName": "D:\\code\\nocr\\nocr\\nocr\\nocr.csproj", |
||||
|
"projectName": "nocr", |
||||
|
"projectPath": "D:\\code\\nocr\\nocr\\nocr\\nocr.csproj", |
||||
|
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\", |
||||
|
"outputPath": "D:\\code\\nocr\\nocr\\nocr\\obj\\", |
||||
|
"projectStyle": "PackageReference", |
||||
|
"configFilePaths": [ |
||||
|
"C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config", |
||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" |
||||
|
], |
||||
|
"originalTargetFrameworks": [ |
||||
|
"net6.0-windows7.0" |
||||
|
], |
||||
|
"sources": { |
||||
|
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, |
||||
|
"https://api.nuget.org/v3/index.json": {} |
||||
|
}, |
||||
|
"frameworks": { |
||||
|
"net6.0-windows7.0": { |
||||
|
"targetAlias": "net6.0-windows", |
||||
|
"projectReferences": {} |
||||
|
} |
||||
|
}, |
||||
|
"warningProperties": { |
||||
|
"warnAsError": [ |
||||
|
"NU1605" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"frameworks": { |
||||
|
"net6.0-windows7.0": { |
||||
|
"targetAlias": "net6.0-windows", |
||||
|
"dependencies": { |
||||
|
"Newtonsoft.Json": { |
||||
|
"target": "Package", |
||||
|
"version": "[13.0.1, )" |
||||
|
} |
||||
|
}, |
||||
|
"imports": [ |
||||
|
"net461", |
||||
|
"net462", |
||||
|
"net47", |
||||
|
"net471", |
||||
|
"net472", |
||||
|
"net48" |
||||
|
], |
||||
|
"assetTargetFallback": true, |
||||
|
"warn": true, |
||||
|
"frameworkReferences": { |
||||
|
"Microsoft.NETCore.App": { |
||||
|
"privateAssets": "all" |
||||
|
}, |
||||
|
"Microsoft.WindowsDesktop.App.WindowsForms": { |
||||
|
"privateAssets": "none" |
||||
|
} |
||||
|
}, |
||||
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.201\\RuntimeIdentifierGraph.json" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> |
||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> |
||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> |
||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> |
||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Administrator\.nuget\packages\</NuGetPackageFolders> |
||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> |
||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.1.0</NuGetToolVersion> |
||||
|
</PropertyGroup> |
||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
||||
|
<SourceRoot Include="C:\Users\Administrator\.nuget\packages\" /> |
||||
|
</ItemGroup> |
||||
|
</Project> |
@ -0,0 +1,2 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> |
@ -0,0 +1,116 @@ |
|||||
|
{ |
||||
|
"version": 3, |
||||
|
"targets": { |
||||
|
"net6.0-windows7.0": { |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"type": "package", |
||||
|
"compile": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": {} |
||||
|
}, |
||||
|
"runtime": { |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll": {} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"libraries": { |
||||
|
"Newtonsoft.Json/13.0.1": { |
||||
|
"sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", |
||||
|
"type": "package", |
||||
|
"path": "newtonsoft.json/13.0.1", |
||||
|
"files": [ |
||||
|
".nupkg.metadata", |
||||
|
".signature.p7s", |
||||
|
"LICENSE.md", |
||||
|
"lib/net20/Newtonsoft.Json.dll", |
||||
|
"lib/net20/Newtonsoft.Json.xml", |
||||
|
"lib/net35/Newtonsoft.Json.dll", |
||||
|
"lib/net35/Newtonsoft.Json.xml", |
||||
|
"lib/net40/Newtonsoft.Json.dll", |
||||
|
"lib/net40/Newtonsoft.Json.xml", |
||||
|
"lib/net45/Newtonsoft.Json.dll", |
||||
|
"lib/net45/Newtonsoft.Json.xml", |
||||
|
"lib/netstandard1.0/Newtonsoft.Json.dll", |
||||
|
"lib/netstandard1.0/Newtonsoft.Json.xml", |
||||
|
"lib/netstandard1.3/Newtonsoft.Json.dll", |
||||
|
"lib/netstandard1.3/Newtonsoft.Json.xml", |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll", |
||||
|
"lib/netstandard2.0/Newtonsoft.Json.xml", |
||||
|
"newtonsoft.json.13.0.1.nupkg.sha512", |
||||
|
"newtonsoft.json.nuspec", |
||||
|
"packageIcon.png" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"projectFileDependencyGroups": { |
||||
|
"net6.0-windows7.0": [ |
||||
|
"Newtonsoft.Json >= 13.0.1" |
||||
|
] |
||||
|
}, |
||||
|
"packageFolders": { |
||||
|
"C:\\Users\\Administrator\\.nuget\\packages\\": {} |
||||
|
}, |
||||
|
"project": { |
||||
|
"version": "1.0.0", |
||||
|
"restore": { |
||||
|
"projectUniqueName": "D:\\code\\nocr\\nocr\\nocr\\nocr.csproj", |
||||
|
"projectName": "nocr", |
||||
|
"projectPath": "D:\\code\\nocr\\nocr\\nocr\\nocr.csproj", |
||||
|
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\", |
||||
|
"outputPath": "D:\\code\\nocr\\nocr\\nocr\\obj\\", |
||||
|
"projectStyle": "PackageReference", |
||||
|
"configFilePaths": [ |
||||
|
"C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config", |
||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" |
||||
|
], |
||||
|
"originalTargetFrameworks": [ |
||||
|
"net6.0-windows7.0" |
||||
|
], |
||||
|
"sources": { |
||||
|
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, |
||||
|
"https://api.nuget.org/v3/index.json": {} |
||||
|
}, |
||||
|
"frameworks": { |
||||
|
"net6.0-windows7.0": { |
||||
|
"targetAlias": "net6.0-windows", |
||||
|
"projectReferences": {} |
||||
|
} |
||||
|
}, |
||||
|
"warningProperties": { |
||||
|
"warnAsError": [ |
||||
|
"NU1605" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"frameworks": { |
||||
|
"net6.0-windows7.0": { |
||||
|
"targetAlias": "net6.0-windows", |
||||
|
"dependencies": { |
||||
|
"Newtonsoft.Json": { |
||||
|
"target": "Package", |
||||
|
"version": "[13.0.1, )" |
||||
|
} |
||||
|
}, |
||||
|
"imports": [ |
||||
|
"net461", |
||||
|
"net462", |
||||
|
"net47", |
||||
|
"net471", |
||||
|
"net472", |
||||
|
"net48" |
||||
|
], |
||||
|
"assetTargetFallback": true, |
||||
|
"warn": true, |
||||
|
"frameworkReferences": { |
||||
|
"Microsoft.NETCore.App": { |
||||
|
"privateAssets": "all" |
||||
|
}, |
||||
|
"Microsoft.WindowsDesktop.App.WindowsForms": { |
||||
|
"privateAssets": "none" |
||||
|
} |
||||
|
}, |
||||
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.201\\RuntimeIdentifierGraph.json" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,10 @@ |
|||||
|
{ |
||||
|
"version": 2, |
||||
|
"dgSpecHash": "rx4E4P1iKGjKUgRNh9X6UFFeM3uboL44gcK18rjJw4LlAaXjp7XIfPK+AB+cB9T/cD61MnwdplBBIJW5XU5mvw==", |
||||
|
"success": true, |
||||
|
"projectFilePath": "D:\\code\\nocr\\nocr\\nocr\\nocr.csproj", |
||||
|
"expectedPackageFiles": [ |
||||
|
"C:\\Users\\Administrator\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512" |
||||
|
], |
||||
|
"logs": [] |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
[account] |
||||
|
apikey=zzMsFjeXqci8GTO2Trhz3He6 |
||||
|
secretkey=cyFMhGEjw6OuCFMECmH5xzMff9sm8DpT |
Loading…
Reference in new issue