初始备份。

This commit is contained in:
如果当时 committed 2020-11-28 16:15:24 +08:00
commit 59677e1a85
152 files changed
+54611

No files matched your search

+220
View File
@@ -0,0 +1,220 @@
namespace 开发辅助工具.Tools
{
partial class FrmColor
{
/// <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(FrmColor));
this.superColor1 = new ryControls.SuperColor();
this.label1 = new System.Windows.Forms.Label();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.table1 = new XPTable.Models.Table();
this.columnModel1 = new XPTable.Models.ColumnModel();
this.ColTitle = new XPTable.Models.TextColumn();
this.ColValue = new XPTable.Models.TextColumn();
this.ColDes = new XPTable.Models.TextColumn();
this.tableModel1 = new XPTable.Models.TableModel();
this.label2 = new System.Windows.Forms.Label();
this.TxtType = new ryControls.TextBoxEx2();
this.label3 = new System.Windows.Forms.Label();
this.TxtValue = new ryControls.TextBoxEx2();
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.SuspendLayout();
//
// superColor1
//
this.superColor1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.superColor1.Cursor = System.Windows.Forms.Cursors.Hand;
this.superColor1.Location = new System.Drawing.Point(68, 10);
this.superColor1.Name = "superColor1";
this.superColor1.Size = new System.Drawing.Size(73, 22);
this.superColor1.TabIndex = 0;
this.superColor1.BackColorChanged += new System.EventHandler(this.SuperColor1_BackColorChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(9, 15);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(53, 12);
this.label1.TabIndex = 1;
this.label1.Text = "选择颜色";
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(185, 70);
this.menuRight1.SourceContent = this;
//
// table1
//
this.table1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.table1.ColumnModel = this.columnModel1;
this.table1.EnableToolTips = true;
this.table1.FullRowSelect = true;
this.table1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.table1.Location = new System.Drawing.Point(11, 38);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(777, 353);
this.table1.TabIndex = 16;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
//
// columnModel1
//
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
this.ColTitle,
this.ColValue,
this.ColDes});
//
// ColTitle
//
this.ColTitle.Editable = false;
this.ColTitle.Tag = null;
this.ColTitle.Text = "类型";
this.ColTitle.Width = 130;
//
// ColValue
//
this.ColValue.Editable = false;
this.ColValue.Tag = null;
this.ColValue.Text = "值";
this.ColValue.Width = 220;
//
// ColDes
//
this.ColDes.Editable = false;
this.ColDes.Tag = null;
this.ColDes.Text = "备注";
this.ColDes.Width = 350;
//
// tableModel1
//
this.tableModel1.RowHeight = 25;
this.tableModel1.SelectionChanged += new XPTable.Events.SelectionEventHandler(this.TableModel1_SelectionChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 405);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 17;
this.label2.Text = "类型";
//
// TxtType
//
this.TxtType.BackColor = System.Drawing.Color.White;
this.TxtType.EmptyText = "";
this.TxtType.Location = new System.Drawing.Point(47, 397);
this.TxtType.MaxLength = 999999999;
this.TxtType.Multiline = false;
this.TxtType.Name = "TxtType";
this.TxtType.OnlyNumeric = false;
this.TxtType.PasswordChar = '\0';
this.TxtType.ReadOnly = true;
this.TxtType.SelectedText = "";
this.TxtType.SelectionLength = 0;
this.TxtType.SelectionStart = 0;
this.TxtType.Size = new System.Drawing.Size(143, 29);
this.TxtType.TabIndex = 18;
this.TxtType.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtType.ToolTip = "";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(200, 405);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(17, 12);
this.label3.TabIndex = 19;
this.label3.Text = "值";
//
// TxtValue
//
this.TxtValue.BackColor = System.Drawing.Color.White;
this.TxtValue.EmptyText = "";
this.TxtValue.Location = new System.Drawing.Point(223, 397);
this.TxtValue.MaxLength = 999999999;
this.TxtValue.Multiline = false;
this.TxtValue.Name = "TxtValue";
this.TxtValue.OnlyNumeric = false;
this.TxtValue.PasswordChar = '\0';
this.TxtValue.ReadOnly = true;
this.TxtValue.SelectedText = "";
this.TxtValue.SelectionLength = 0;
this.TxtValue.SelectionStart = 0;
this.TxtValue.Size = new System.Drawing.Size(229, 29);
this.TxtValue.TabIndex = 20;
this.TxtValue.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtValue.ToolTip = "";
//
// FrmColor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.TxtValue);
this.Controls.Add(this.label3);
this.Controls.Add(this.TxtType);
this.Controls.Add(this.label2);
this.Controls.Add(this.table1);
this.Controls.Add(this.label1);
this.Controls.Add(this.superColor1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmColor";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "颜色转换";
this.Load += new System.EventHandler(this.FrmColor_Load);
((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private ryControls.SuperColor superColor1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ToolTip toolTip1;
private ryPaiban.Model.MenuRight menuRight1;
private XPTable.Models.Table table1;
private XPTable.Models.ColumnModel columnModel1;
private XPTable.Models.TextColumn ColTitle;
private XPTable.Models.TextColumn ColValue;
private XPTable.Models.TextColumn ColDes;
private XPTable.Models.TableModel tableModel1;
private ryControls.TextBoxEx2 TxtValue;
private System.Windows.Forms.Label label3;
private ryControls.TextBoxEx2 TxtType;
private System.Windows.Forms.Label label2;
}
}
@@ -0,0 +1,70 @@
using ryCommon;
using ryControls;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmColor : DockContent
{
public FrmColor()
{
InitializeComponent();
}
private void SuperColor1_BackColorChanged(object sender, EventArgs e)
{
Color color = superColor1.BackColor;
ryControls.ColorRGB RGB =new ryControls.ColorRGB(color.R,color.G,color.B);
var hsl= ryControls.ColorHelper.RgbToHsl(RGB);
var hsv = ryControls.ColorHelper.RgbToHsv(RGB);
tableModel1.Rows.Clear();
AddList("RGB颜色值", "rgb(" + color.R + "," + color.G + "," + color.B + ")","");
AddList("RGBA颜色值", "rgba(" + color.R + "," + color.G + "," + color.B + "," + color.A + ")", "HTML5、CSS3常用");
AddList("ARGB颜色值", String.Format("#{0:X2}{1:X2}{2:X2}{3:X2}", color.A, color.R, color.G, color.B), "android常用");
AddList("16进制颜色值", String.Format("#{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B), "");
AddList("HSL颜色值", "hsl(" + color.GetHue().ToString("0.00") + "," + color.GetSaturation().ToString("0.00%") + "," + (hsl.L / 255m).ToString("0.00%") + ")", "");
AddList("HSV颜色值", "hsv(" + color.GetHue().ToString("0.00") + "," + (hsv.S / 255m).ToString("0.00") + "," + (hsv.V / 255m).ToString("0.00") + ")", "");
ColorHelper.RGB2CMYK(RGB, out var c, out var m, out var y, out var k);
AddList("CMYK", c.ToInt().ToString()+","+m.ToInt().ToString() + "," + y.ToInt().ToString() + "," + k.ToInt().ToString(), "印刷四色模式");
ColorHelper.RGB2XYZ(RGB, out var x, out var y1, out var z);
AddList("XYZ", x.ToString("0.000") + "," + y1.ToString("0.000") + "," + z.ToString("0.000"), "D65/2°");
ColorHelper.RGB2Yxy(RGB, out var Y, out var x2, out var y2);
AddList("Yxy", Y.ToString("0.000") + "," + x2.ToString("0.000") + "," + y2.ToString("0.000"), "D65/2°");
void AddList(string title,string value,string des)
{
XPTable.Models.Row itemList = new XPTable.Models.Row()
{
Tag = ""
};
//需要修改此处
itemList.Cells.Add(new XPTable.Models.Cell(title));//示例
itemList.Cells.Add(new XPTable.Models.Cell(value));//示例
var cell = new XPTable.Models.Cell(des)
{
ForeColor = Color.Gray
};
itemList.Cells.Add(cell);
tableModel1.Rows.Add(itemList);
}
}
private void FrmColor_Load(object sender, EventArgs e)
{
}
private void TableModel1_SelectionChanged(object sender, XPTable.Events.SelectionEventArgs e)
{
if (e.NewSelectedIndicies.Length <= 0) { TxtType.Text = "";TxtValue.Text = ""; return; }
int row = e.NewSelectedIndicies[0];
TxtType.Text = table1.TableModel.Rows[row].Cells[ColTitle.Index].Text;
TxtValue.Text = table1.TableModel.Rows[row].Cells[ColValue.Index].Text;
}
}
}
@@ -0,0 +1,209 @@
<?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="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 17</value>
</metadata>
<metadata name="columnModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>242, 17</value>
</metadata>
<metadata name="tableModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>383, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAOgkAADoJAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6tMMA+rTDAPq0wwD6tMMA+rTDAPq0
wwD6tMMA+rTDAPq0wwD6tMMA+rTDAPq0wwD6tMMA+rTDAPq0wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw0n0A8NJ9APDRgADq41YA+7LHEPq0
wzX6tMNe+rTDffq0w4n6tMOK+rTDfvq0w2D6tMM3+bTDEaSE5wB0avsAZGH/AGlk/wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw0n0A8NJ9APDSfQDw0n0A8NN6J/PK
kXz5tr7I+rTE8Pq0w/76tMP/+rTD//q0w//6tMP/+rTD//q0w/D7tcPK3KTPf21m/SqIdfIAaWT/AGlk
/wBpZP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8NJ9APDSfQDw0n0A8NJ9FPDS
fXvw0n3g8NF+//TFm//6tcD/+rTD//q0w//6tMP/+rTD//q0w//6tMP/+rTD//y1wv/PnNX/bGb+4mlk
/39pZP8WaWT/AGlk/wBpZP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDSfQDw0n0A8NJ9APDS
fTDw0n278NJ9//DSff/w0n3/8NJ9//TFm//6tcD/+rTD//q0w//6tMP/+rTD//q0w//6tMP//LXC/86c
1f9sZf7/aWT//2lk/75pZP8zaWT/AGlk/wBpZP8AAAAAAAAAAAAAAAAAAAAAAAAAAADw0n0A8NJ9APDS
fQDw0n088NJ91fDSff/w0n3/8NJ9//DSff/w0n3/8NJ9//TFm//6tcD/+rTD//q0w//6tMP/+rTD//q0
w//8tcL/zpzV/2xl/v9pZP//aWT//2lk/9lpZP9AaWT/AGlk/wBpZP8AAAAAAAAAAAAAAAAAAAAAAPDS
fQDw0n0A8NJ9L/DSfdXw0n3/8NJ9//DSff/w0n3/8NJ9//DSff/w0n3/8NJ9//TFm//6tcD/+rTD//q0
w//6tMP/+rTD//y1wv/OnNX/bGX+/2lk//9pZP//aWT//2lk/9lpZP8zaWT/AGlk/wAAAAAAAAAAAAAA
AADw0n0A8NJ9APDSfRPw0n268NJ9//DSff/w0n3/8NJ9//DSff/w0n3/8NJ9//DSff/w0n3/8NJ9//TF
m//6tcD/+rTD//q0w//6tMP//LXC/86c1f9sZf7/aWT//2lk//9pZP//aWT//2lk/75pZP8WaWT/AGlk
/wAAAAAAAAAAAPLRfQDs1H0A8NJ9efDSff/w0n3/8NJ9//DSff/w0n3/8NJ9//DSff/w0n3/8NJ9//DS
ff/w0n3/8NJ9//TFm//6tcD/+rTD//q0w//8tcL/zpzV/2xl/v9pZP//aWT//2lk//9pZP//aWT//2lk
/39pZP8AaWT/AGlk/wDD5n0A7dN9AO/TfSbv0n3e79J9/+/Sff/v0n3/79J9/+/Sff/v0n3/79J9/+/S
ff/v0n3/79J9//DSffvw0n378NJ9+/TFm/v6tcD/+rTD//y1wv/OnNX/bGX+/2lk//9pZP//aWT//2lk
//9pZP//aWT/4mlg/ylpZ/8AZKr/AMPmfQDY3X0AzOJ9edDgff/R4H3/0eB9/9Hgff/R4H3/0eB9/9Hg
ff/R4H3/0eB9/9HgffXe2n2D8dJ9T/DSfVDw0nxQ8NF+T/m4uYD6tMPz/LXC/86c1f9sZf7/aWT//2lk
//9pZP//aWT//2lk//9pZv//Z3n/f2w1/wBkqv8Aw+Z9AMPmfQ7D5n3FwuZ9/8Lmff/C5n3/wuZ9/8Lm
ff/C5n3/wuZ9/8Lmff/C5n32wed9c2//fQLr1H0A8NJ9APDSfQDyzYkA/5/0Afq0w279tcL0zpzV/2tl
/v9pZP//aWT//2lk//9pZP//aWX//2eD//9kpv/JZK3/EGSq/wDD5n0Aw+Z9MsPmfe7D5n3/w+Z9/8Pm
ff/D5n3/w+Z9/8Pmff/D5n3/w+Z99cPmfXPD5n0Dw+Z9AMPmfQAAAAAAAAAAAPq0wwD6tMMA+rTDAv+3
wW7Mm9bzbGb+/2lk//9pZP//aWT//2ll//9ng///ZKf//2Sq//Bkqv83ZKr/AMPmfQDD5n1aw+Z9/cPm
ff/D5n3/w+Z9/8Pmff/D5n3/xOZ9/7/mf/+25YSF5ehrAsPmfQDD5n0AAAAAAAAAAAAAAAAAAAAAAPq0
wwD6tMMA//8AAaGD6IBrZf7/aWT//2lk//9pZf//Z4P//2Sn//9kqv//ZKr//2Sq/19kqv8Aw+Z9AMPm
fXfD5n3/w+Z9/8Pmff/D5n3/w+Z9/8Tmff+/5n//j+OY/WfhrVR24qYAw+Z9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAPq0wwB3bPkAZWL/T2lk//tpZP//aWX//2eD//9kp///ZKr//2Sq//9kqv//ZKr/fmSq
/wDD5n0Aw+Z9h8Pmff/D5n3/w+Z9/8Pmff/E5n3/v+Z//4/jmP9l4a79Y+GwVmPhrwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlk/wBpZP9QaWT/+2ll//9ng///ZKf//2Sq//9kqv//ZKr//2Sq
//9kqv+KZKr/AMPmfQDD5n2Gw+Z9/8Pmff/D5n3/xOZ9/7/mf/+P45j/ZeGu/2Thr/1k4a9WZOGvAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWT/AGlj/1BpZf/7Z4P//2Sn//9kqv//ZKr//2Sq
//9kqv//ZKr//2Sq/4lkqv8Aw+Z9AMPmfXfD5n3/w+Z9/8Tmff+/5n//j+OY/2Xhrv9k4a//ZOGv/WTh
rlRk4rQAZObXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSq/wBocf8AaWb/T2eD//tkp///ZKr//2Sq
//9kqv//ZKr//2Sq//9kqv//ZKr/fWSq/wDD5n0Aw+Z9WMPmff3E5n3/v+Z//4/jmP9l4a7/ZOGv/2Th
r/9k4bD/ZOO+iWTs/wNk5tcAZObXAAAAAAAAAAAAAAAAAAAAAABkqv8AZKr/AGLD/wJlof+DZKf//2Sq
//9kqv//ZKr//2Sq//9kqv//ZKr//2Sq//5kqv9fZKr/AMPmfQDD5n0xxOZ97b/mf/+P45j/ZeGu/2Th
r/9k4a//ZOGv/2ThsP9k5Mn2ZObYeGTm1wRk5tcAZObXAAAAAAAAAAAAZKr/AGSq/wBkqv8DZKr/c2Sq
//Vkqv//ZKr//2Sq//9kqv//ZKr//2Sq//9kqv//ZKr/8GSq/zZkqv8Aw+Z9AMjmeg295oDDkOOY/2Xh
rv9k4a//ZOGv/2Thr/9k4a//ZOGv/2Tkyv9k5tj3ZObXeGPmzgNo5vcAaeb/AGnm/wBo4P8AWjT/AmSo
/3Nkqf/2ZKn//2Sp//9kqf//ZKn//2Sp//9kqf//ZKn//2Sp//9kqv/IZKr/EGSq/wDD5n0AR9++AIHj
oHZm4a7/ZOGv/2Thr/9k4a//ZOGv/2Thr/9k4a//ZOTK/2Tm2P9k5tf2ZebciWnm/VRp5v9Waeb/Vmnn
/1Rn0f+FZr//9Wa+//9mvv//Zr7//2a+//9mvv//Zr7//2a+//9mvv//Zr7//2W4/31nzv8AZKr/AMPm
fQBn4a4AX+GyJGThr9xk4a//ZOGv/2Thr/9k4a//ZOGv/2Thr/9k5Mr/ZObY/2Tm1/9k5tn/Z+bs/Wnm
/v1p5v/9aeb//Wnl//9p5f//aeX//2nl//9p5f//aeX//2nl//9p5f//aeX//2nl//9p5f/gaeb/KGni
/wBkqv8AAAAAAGThrwBk4a8AZOGvdWThr/5k4a//ZOGv/2Thr/9k4a//ZOGv/2Tkyv9k5tj/ZObX/2Tm
1/9k5tj/Z+bt/2nm/v9p5v//aeb//2nm//9p5v//aeb//2nm//9p5v//aeb//2nm//9p5v//aeb//2nm
/3tp4v8Aaef/AAAAAAAAAAAAZOGvAGThrwBk4a8RZOGvtmThr/9k4a//ZOGv/2Thr/9k4a//ZOTK/2Tm
2P9k5tf/ZObX/2Tm1/9k5tj/Z+bt/2nm/v9p5v//aeb//2nm//9p5v//aeb//2nm//9p5v//aeb//2nm
//9p5v+7aeb/FGnm/wBp5v8AAAAAAAAAAAAAAAAAZOGvAGThrwBk4a8sZOGv0mThr/9k4a//ZOGv/2Th
r/9k5Mr/ZObY/2Tm1/9k5tf/ZObX/2Tm1/9k5tj/Z+bt/2nm/v9p5v//aeb//2nm//9p5v//aeb//2nm
//9p5v//aeb/1mnm/zBp5v8Aaeb/AAAAAAAAAAAAAAAAAAAAAABk4a8AZOGvAGThrwBk4a84ZOGv0mTh
r/9k4a//ZOGv/2Tkyv9k5tj/ZObX/2Tm1/9k5tf/ZObX/2Tm1/9k5tj/Z+bt/2nm/v9p5v//aeb//2nm
//9p5v//aeb//2nm/9Vp5v88aeb/AGnm/wBp5v8AAAAAAAAAAAAAAAAAAAAAAAAAAABk4a8AZOGvAGTh
rwBk4a8sZOGvtmThr/5k4a//ZOTK/2Tm2P9k5tf/ZObX/2Tm1/9k5tf/ZObX/2Tm1/9k5tj/Z+bt/2nm
/v9p5v//aeb//2nm//9p5v+6aeb/L2nm/wBp5v8Aaeb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABk4a8AZOGvAGThrwBk4a8RZOGvdmThr9xk5Mr/ZObY/2Tm1/9k5tf/ZObX/2Tm1/9k5tf/ZObX/2Tm
1/9k5tj/Z+bs/2nm/v9p5v/eaeb/eWnm/xNp5v8Aaeb/AGnm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABk4a8AZOGvAGThrwBk4bEAZOGvJGTlzndk5tfDZObX7WTm1/1k5tf/ZObX/2Tm
1/9k5tf/ZObX/WTm1+5k5tnEZ+byeWnm/yVp5v8Aaeb/AGnm/wBp5v8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZOGvAGThrQBk4bEAZOTEAGTm1w1k5tcxZObXWGTm
13dk5teGZObXh2Tm13dk5tdZZObXMmTm1Q5r5v8Aaeb+AGnm/wBp5v8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGTm1wBk5tcAZObXAGTm
1wBk5tcAZObXAGTm1wBk5tcAZObXAGTm1wBk5tcAZObXAGTm1wBk5tcAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/wAA//4AAH/4AAAf8AAAD+AAAAfAAAADwAAAA4AAAAGAAAAAAAAAAAAA
AAAAAAAAAAGAAAADwAAAB+AAAA/wAAAP8AAAB+AAAAPAAAABgAAAAAAAAAAAAAAAAACAAAAAgAAAAcAA
AAPAAAAD4AAAB/AAAA/4AAAf/gAAf/+AAf8=
</value>
</data>
</root>
@@ -0,0 +1,287 @@
namespace 开发辅助工具.Tools
{
partial class FrmCreateProject
{
/// <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.TxtFolder = new ryControls.TextBoxEx2();
this.label1 = new System.Windows.Forms.Label();
this.BtnBrowser = new ryControls.ButtonEx();
this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
this.BtnCreate = new ryControls.ButtonEx();
this.label2 = new System.Windows.Forms.Label();
this.TxtProjectName = new ryControls.TextBoxEx2();
this.TxtProjectEngName = new ryControls.TextBoxEx2();
this.label3 = new System.Windows.Forms.Label();
this.table1 = new XPTable.Models.Table();
this.columnModel1 = new XPTable.Models.ColumnModel();
this.ColName = new XPTable.Models.TextColumn();
this.ColPath = new XPTable.Models.TextColumn();
this.tableModel1 = new XPTable.Models.TableModel();
this.ChkUnCreateProject = new System.Windows.Forms.CheckBox();
this.label4 = new System.Windows.Forms.Label();
this.CbbLang = new ryControls.ComboBoxEx();
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.SuspendLayout();
//
// TxtFolder
//
this.TxtFolder.BackColor = System.Drawing.Color.White;
this.TxtFolder.EmptyText = "";
this.TxtFolder.Location = new System.Drawing.Point(17, 24);
this.TxtFolder.MaxLength = 999999999;
this.TxtFolder.Multiline = false;
this.TxtFolder.Name = "TxtFolder";
this.TxtFolder.OnlyNumeric = false;
this.TxtFolder.PasswordChar = '\0';
this.TxtFolder.ReadOnly = false;
this.TxtFolder.SelectedText = "";
this.TxtFolder.SelectionLength = 0;
this.TxtFolder.SelectionStart = 0;
this.TxtFolder.Size = new System.Drawing.Size(575, 33);
this.TxtFolder.TabIndex = 0;
this.TxtFolder.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtFolder.ToolTip = "";
this.TxtFolder.WordWrap = true;
this.TxtFolder.Click += new System.EventHandler(this.TxtFolder_Click);
this.TxtFolder.Enter += new System.EventHandler(this.TxtFolder_Enter);
this.TxtFolder.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtFolder_KeyDown);
this.TxtFolder.Leave += new System.EventHandler(this.TxtFolder_Leave);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(15, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 12);
this.label1.TabIndex = 1;
this.label1.Text = "选择文件夹";
//
// BtnBrowser
//
this.BtnBrowser.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnBrowser.Location = new System.Drawing.Point(598, 24);
this.BtnBrowser.Name = "BtnBrowser";
this.BtnBrowser.Size = new System.Drawing.Size(75, 33);
this.BtnBrowser.TabIndex = 2;
this.BtnBrowser.Text = "选择";
this.BtnBrowser.UseVisualStyleBackColor = true;
this.BtnBrowser.Click += new System.EventHandler(this.BtnBrowser_Click);
//
// BtnCreate
//
this.BtnCreate.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnCreate.Location = new System.Drawing.Point(17, 153);
this.BtnCreate.Name = "BtnCreate";
this.BtnCreate.Size = new System.Drawing.Size(75, 33);
this.BtnCreate.TabIndex = 3;
this.BtnCreate.Text = "生成";
this.BtnCreate.UseVisualStyleBackColor = true;
this.BtnCreate.Click += new System.EventHandler(this.BtnCreate_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(15, 60);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(89, 12);
this.label2.TabIndex = 4;
this.label2.Text = "项目名称(中文)";
//
// TxtProjectName
//
this.TxtProjectName.BackColor = System.Drawing.Color.White;
this.TxtProjectName.EmptyText = "";
this.TxtProjectName.Location = new System.Drawing.Point(17, 75);
this.TxtProjectName.MaxLength = 999999999;
this.TxtProjectName.Multiline = false;
this.TxtProjectName.Name = "TxtProjectName";
this.TxtProjectName.OnlyNumeric = false;
this.TxtProjectName.PasswordChar = '\0';
this.TxtProjectName.ReadOnly = false;
this.TxtProjectName.SelectedText = "";
this.TxtProjectName.SelectionLength = 0;
this.TxtProjectName.SelectionStart = 0;
this.TxtProjectName.Size = new System.Drawing.Size(256, 33);
this.TxtProjectName.TabIndex = 5;
this.TxtProjectName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtProjectName.ToolTip = "";
this.TxtProjectName.WordWrap = true;
//
// TxtProjectEngName
//
this.TxtProjectEngName.BackColor = System.Drawing.Color.White;
this.TxtProjectEngName.EmptyText = "";
this.TxtProjectEngName.Location = new System.Drawing.Point(279, 75);
this.TxtProjectEngName.MaxLength = 999999999;
this.TxtProjectEngName.Multiline = false;
this.TxtProjectEngName.Name = "TxtProjectEngName";
this.TxtProjectEngName.OnlyNumeric = false;
this.TxtProjectEngName.PasswordChar = '\0';
this.TxtProjectEngName.ReadOnly = false;
this.TxtProjectEngName.SelectedText = "";
this.TxtProjectEngName.SelectionLength = 0;
this.TxtProjectEngName.SelectionStart = 0;
this.TxtProjectEngName.Size = new System.Drawing.Size(256, 33);
this.TxtProjectEngName.TabIndex = 7;
this.TxtProjectEngName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtProjectEngName.ToolTip = "";
this.TxtProjectEngName.WordWrap = true;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(277, 60);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(89, 12);
this.label3.TabIndex = 6;
this.label3.Text = "项目名称(英文)";
//
// table1
//
this.table1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.table1.ColumnModel = this.columnModel1;
this.table1.EnableToolTips = true;
this.table1.FullRowSelect = true;
this.table1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.table1.Location = new System.Drawing.Point(20, 247);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(575, 347);
this.table1.TabIndex = 113;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
this.table1.Visible = false;
this.table1.CellLostFocus += new XPTable.Events.CellFocusEventHandler(this.table1_CellLostFocus);
this.table1.Click += new System.EventHandler(this.table1_Click);
this.table1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.table1_KeyDown);
this.table1.Leave += new System.EventHandler(this.table1_Leave);
//
// columnModel1
//
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
this.ColName,
this.ColPath});
//
// ColName
//
this.ColName.Editable = false;
this.ColName.Tag = null;
this.ColName.Text = "名称";
this.ColName.Width = 130;
//
// ColPath
//
this.ColPath.Editable = false;
this.ColPath.Tag = null;
this.ColPath.Text = "路径";
this.ColPath.Width = 400;
//
// ChkUnCreateProject
//
this.ChkUnCreateProject.AutoSize = true;
this.ChkUnCreateProject.Location = new System.Drawing.Point(17, 114);
this.ChkUnCreateProject.Name = "ChkUnCreateProject";
this.ChkUnCreateProject.Size = new System.Drawing.Size(108, 16);
this.ChkUnCreateProject.TabIndex = 114;
this.ChkUnCreateProject.Text = "不生成模板项目";
this.ChkUnCreateProject.UseVisualStyleBackColor = true;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(542, 60);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(53, 12);
this.label4.TabIndex = 115;
this.label4.Text = "项目语言";
//
// CbbLang
//
this.CbbLang.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbLang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CbbLang.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbLang.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbLang.FormattingEnabled = true;
this.CbbLang.Items.AddRange(new object[] {
"C#",
"Delphi"});
this.CbbLang.Location = new System.Drawing.Point(544, 78);
this.CbbLang.Name = "CbbLang";
this.CbbLang.Size = new System.Drawing.Size(121, 27);
this.CbbLang.TabIndex = 116;
//
// FrmCreateProject
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(688, 450);
this.Controls.Add(this.table1);
this.Controls.Add(this.CbbLang);
this.Controls.Add(this.label4);
this.Controls.Add(this.ChkUnCreateProject);
this.Controls.Add(this.TxtProjectEngName);
this.Controls.Add(this.label3);
this.Controls.Add(this.TxtProjectName);
this.Controls.Add(this.label2);
this.Controls.Add(this.BtnCreate);
this.Controls.Add(this.BtnBrowser);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtFolder);
this.Name = "FrmCreateProject";
this.Text = "创建项目";
this.Load += new System.EventHandler(this.FrmCreateProject_Load);
this.Shown += new System.EventHandler(this.FrmCreateProject_Shown);
this.Click += new System.EventHandler(this.FrmCreateProject_Click);
((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private ryControls.ButtonEx BtnBrowser;
private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
private ryControls.ButtonEx BtnCreate;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private XPTable.Models.Table table1;
private XPTable.Models.ColumnModel columnModel1;
private XPTable.Models.TextColumn ColName;
private XPTable.Models.TextColumn ColPath;
private XPTable.Models.TableModel tableModel1;
private System.Windows.Forms.Label label4;
public ryControls.TextBoxEx2 TxtFolder;
public System.Windows.Forms.CheckBox ChkUnCreateProject;
public ryControls.TextBoxEx2 TxtProjectName;
public ryControls.TextBoxEx2 TxtProjectEngName;
public ryControls.ComboBoxEx CbbLang;
}
}
@@ -0,0 +1,313 @@
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using 开发辅助工具.Manager;
namespace 开发辅助工具.Tools
{
public partial class FrmCreateProject : Form
{
public FrmCreateProject()
{
ProcUse = true;
InitializeComponent();
CbbLang.SelectedIndex = 0;
}
bool ProcUse = false;
RyProject project = new RyProject();
private void FrmCreateProject_Load(object sender, EventArgs e)
{
ryCommon.RyFiles.AddDropDrag(TxtFolder.Handle).ElevatedDragDrop += FrmCreateProject_ElevatedDragDrop;
project.CopyDllToBin = true;
var lines = RyFiles.ReadAllLines(Application.StartupPath+"\\SysDb\\Folder.txt");
for (int i = 0; i < lines.Length; i++)
{
var item = lines[i].Split('|');
if(item.Length>=2)
{
if (System.IO.Directory.Exists(item[1]))
{ AddItem(item[0], item[1]); }
}
}
}
private void AddItem(string name,string path)
{
XPTable.Models.Row itemList = new XPTable.Models.Row()
{
Tag = ""
};
//需要修改此处
itemList.Cells.Add(new XPTable.Models.Cell(name));//示例
var cell = new XPTable.Models.Cell(path);
cell.ForeColor = Color.Gray;
itemList.Cells.Add(cell);
tableModel1.Rows.Add(itemList);
}
private void FrmCreateProject_ElevatedDragDrop(object sender, ElevatedDragDropArgs e)
{
TxtFolder.Text = e.Files[0];
table1.Visible = false;
}
private void BtnBrowser_Click(object sender, EventArgs e)
{
if(folderBrowserDialog1.ShowDialog()==DialogResult.OK)
{
TxtFolder.Text = folderBrowserDialog1.SelectedPath;
table1.Visible = false;
}
}
private void BtnCreate_Click(object sender, EventArgs e)
{
var CshapeBasePath = project.CshapeBasePath;
var ReferenceDllPath = project.ReferenceDllPath;
var path = TxtFolder.Text.TrimEnd('\\');
var project_name = TxtProjectName.Text;
var project_Eng_name = TxtProjectEngName.Text;
#region 判断项目是否符合标准
if (!ryCommon.RyFiles.IsValidFileName(project_name))
{
MessageBox.Show("无效的项目名称(中文)", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
}
if (!ryCommon.RyFiles.IsValidFileName(project_Eng_name) || !project_Eng_name.Replace(" ", "").IsEngOrNum())
{
MessageBox.Show("无效的项目名称(英文)", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
}
else if (project_Eng_name.Length < 3 || project_Eng_name.Substring(0, 1).IsInt() || project_Eng_name.Substring(0, 1) == " ")
{
MessageBox.Show("无效的项目名称(英文)", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
}
var full_path = path + "\\" + project_name;
if(System.IO.Directory.Exists(path + "\\Bin") && System.IO.Directory.Exists(path + "\\Source"))
{
full_path = path;
}
ryCommon.RyFiles.CreateDirectory(full_path);
if(!System.IO.Directory.Exists(full_path))
{
MessageBox.Show("创建路径失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);return;
}
#endregion
BtnCreate.Enabled = false;
var prog_lang = "c#";
if (CbbLang.SelectedIndex == 0) { prog_lang = "c#"; }
else if (CbbLang.SelectedIndex == 1) { prog_lang = "delphi"; }
#region 创建项目必备文件夹和文件
ryCommon.RyFiles.CreateDirectory(full_path + "\\Bin\\Debug\\"+project_Eng_name);
ryCommon.RyFiles.CreateDirectory(full_path + "\\Source");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Res");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Res\\ThirdParty");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Res\\Images");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Publish\\Green");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Publish\\Green\\HistoryVer");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Publish\\Install");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Publish\\Install\\HistoryVer");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Publish\\OriginalFiles");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Publish\\UpdateFile");
ryCommon.RyFiles.CreateDirectory(full_path + "\\Help");
if (!System.IO.File.Exists(full_path + "\\CHANGELOG.md"))
{ ryCommon.RyFiles.WriteAllText(full_path + "\\CHANGELOG.md", "", Encoding.UTF8); }
if (!System.IO.File.Exists(full_path + "\\README.md"))
{ ryCommon.RyFiles.WriteAllText(full_path + "\\README.md", "", Encoding.UTF8); }
if (!System.IO.File.Exists(full_path + "\\Publish\\Publish.set"))
{
ryCommon.RyFiles.WriteAllText(full_path + "\\Publish\\Publish.set", "#del表示删除文件;copy表示复制文件;" +
"\r\n#原目录:Bin\\Debug\\或Bin\\Release,目标目录:Publish\\OriginalFiles" +
"\r\ndel:UserDb\r\ndel:Db\r\ncopy:SysDb\\*->SysDb\\", Encoding.UTF8);
}
#endregion
if (prog_lang == "c#")
{
#region 生成混淆信息
ReactorXML xml = new ReactorXML();
xml.LoadXML(Application.StartupPath + "\\SysDb\\混淆.nrproj");
if (!System.IO.File.Exists(full_path + "\\Bin\\混淆_Debug.nrproj"))
{
List<string> files_debug = new List<string>
{
"Debug\\"+project_Eng_name+"\\" + project_Eng_name + ".exe",
"Debug\\"+project_Eng_name+"\\" + "MyDb.dll",
"Debug\\"+project_Eng_name+"\\" + "MyDb_SQLite.dll",
"Debug\\"+project_Eng_name+"\\" + "ryUpdate.dll",
"Debug\\"+project_Eng_name+"\\" + "ryControls.dll"
};
xml.Save(full_path + "\\Bin\\混淆_Debug.nrproj", files_debug);
}
if (!System.IO.File.Exists(full_path + "\\Bin\\混淆_Release.nrproj"))
{
List<string> files_Release = new List<string>
{
"Release\\"+project_Eng_name+"\\" + project_Eng_name + ".exe",
"Release\\"+project_Eng_name+"\\" + "MyDb.dll",
"Release\\"+project_Eng_name+"\\" + "MyDb_SQLite.dll",
"Release\\"+project_Eng_name+"\\" + "ryUpdate.dll",
"Release\\"+project_Eng_name+"\\" + "ryControls.dll"
};
xml.Save(full_path + "\\Bin\\混淆_Release.nrproj", files_Release);
}
#endregion
}
#region 设置项目配置文件
if (!System.IO.File.Exists(full_path + "\\查看项目.ryp"))
{
ryCommon.Ini ini = new ryCommon.Ini(full_path + "\\查看项目.ryp");
ini.WriteIni("project", "name", project_name);//项目名称
ini.WriteIni("project", "engname", project_Eng_name);//英文项目名称
ini.WriteIni("project", "usqver", 2.1);//使用的标准版本,新毕方项目标准基于USQ 2.1
ini.WriteIni("project", "proglang", prog_lang);//项目使用的语言
ini.WriteIni("project", "progID", Guid.NewGuid().ToString("D"));//项目唯一ID,用于区分不同项目
}
if (!System.IO.File.Exists(full_path + "\\.gitignore")) //复制git忽略规则
{
RyFiles.CopyFile(Application.StartupPath+ "\\SysDb\\.gitignore", full_path + "\\.gitignore");
}
#endregion
if (!ChkUnCreateProject.Checked)
{
#region 复制和修改基准项目
if (System.IO.Directory.Exists(CshapeBasePath) && prog_lang == "c#") //存在基准项目
{
var source_folder = full_path + "\\Source\\" + project_Eng_name;
ryCommon.RyFiles.CopyFile(CshapeBasePath + "\\*", source_folder);
ryCommon.RyFiles.DeleteFile(source_folder + "\\Bin");
ryCommon.RyFiles.DeleteFile(source_folder + "\\obj");
if (System.IO.File.Exists(source_folder + "\\Itrycn_Project.csproj"))
{
ryCommon.RyFiles.MoveFile(source_folder + "\\Itrycn_Project.csproj", source_folder + "\\" + project_Eng_name + ".csproj");
ryCommon.RyFiles.MoveFile(source_folder + "\\Itrycn_Project.csproj.user", source_folder + "\\" + project_Eng_name + ".csproj.user");
}
if (System.IO.File.Exists(source_folder + "\\Itrycn_Project2.csproj"))
{
ryCommon.RyFiles.MoveFile(source_folder + "\\Itrycn_Project2.csproj", source_folder + "\\" + project_Eng_name + ".csproj");
ryCommon.RyFiles.MoveFile(source_folder + "\\Itrycn_Project2.csproj.user", source_folder + "\\" + project_Eng_name + ".csproj.user");
}
#region 写入新的版本信息
var AssemblyInfo = ryCommon.RyFiles.ReadAllText(Application.StartupPath + "\\SysDb\\AssemblyInfo.cs");
AssemblyInfo = AssemblyInfo.Replace("@AssemblyTitle", project_Eng_name);
AssemblyInfo = AssemblyInfo.Replace("@AssemblyProduct", project_Eng_name);
AssemblyInfo = AssemblyInfo.Replace("@Copyright", "Copyright 2010-2020");
ryCommon.RyFiles.WriteAllText(source_folder + "\\Properties\\AssemblyInfo.cs", AssemblyInfo, Encoding.UTF8);
#endregion
#region 替换命名空间
//var Resources = ryCommon.RyFiles.ReadAllText(source_folder + "\\Properties\\Resources.Designer.cs");
//Resources = Resources.Replace("Itrycn_Project.Properties", project_Eng_name.Replace(" ", "") + ".Properties");
//Resources = Resources.Replace("Itrycn_Project2.Properties", project_Eng_name.Replace(" ", "") + ".Properties");
//ryCommon.RyFiles.WriteAllText(source_folder + "\\Properties\\Resources.Designer.cs", Resources, Encoding.UTF8);
//var frmmain = ryCommon.RyFiles.ReadAllText(source_folder + "\\frmmain.Designer.cs");
//frmmain = frmmain.Replace("Itrycn_Project.Properties", project_Eng_name.Replace(" ", "") + ".Properties");
//frmmain = frmmain.Replace("Itrycn_Project2.Properties", project_Eng_name.Replace(" ", "") + ".Properties");
//ryCommon.RyFiles.WriteAllText(source_folder + "\\frmmain.Designer.cs", frmmain, Encoding.UTF8);
#endregion
project.SetCSproj(source_folder + "\\" + project_Eng_name + ".csproj", project_Eng_name);
}
#endregion
}
BtnCreate.Enabled = true;
MessageBox.Show("创建成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
RyFiles.OpenFile(full_path);
}
private void TxtFolder_Enter(object sender, EventArgs e)
{
if (ProcUse) { return; }
table1.Location = new Point(TxtFolder.Left,TxtFolder.Top+TxtFolder.Height);
table1.Visible = true;
table1.BringToFront();
}
private void TxtFolder_Leave(object sender, EventArgs e)
{
if (!table1.Focused)
{
table1.Visible = false;
}
}
private void table1_Leave(object sender, EventArgs e)
{
if (!TxtFolder.Focused)
{
table1.Visible = false;
}
}
private void table1_CellLostFocus(object sender, XPTable.Events.CellFocusEventArgs e)
{
if (e.Row == -1) { table1.Visible = false; }
}
private void TxtFolder_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
if (table1.Visible)
{
table1.TableModel.Selections.Clear();
table1.TableModel.Selections.AddCells(0, 0, 0, columnModel1.Columns.Count - 1);
table1.Focus();
}
}
}
private void table1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
if (table1.SelectedItems.Length > 0 && table1.SelectedItems[0].Index == 0)
{
table1.TableModel.Selections.Clear();
TxtFolder.Select();
TxtFolder.SelectionLength = 0;
//rySearch1.Select();
}
}
else if (e.KeyCode == Keys.Enter)
{
if (table1.SelectedItems.Length > 0)
{
TxtFolder.Text = table1.SelectedItems[0].Cells[ColPath].Text;
TxtFolder.SelectionLength = 0;
TxtFolder.SelectionStart = 0;
table1.Visible = false;
}
}
}
private void table1_Click(object sender, EventArgs e)
{
if (table1.SelectedItems.Length > 0)
{
TxtFolder.Text = table1.SelectedItems[0].Cells[ColPath].Text;
TxtFolder.SelectionLength = 0;
TxtFolder.SelectionStart = 0;
table1.Visible = false;
}
}
private void FrmCreateProject_Click(object sender, EventArgs e)
{
table1.Visible = false;
}
private void FrmCreateProject_Shown(object sender, EventArgs e)
{
ProcUse = false;
}
private void TxtFolder_Click(object sender, EventArgs e)
{
table1.Location = new Point(TxtFolder.Left, TxtFolder.Top + TxtFolder.Height);
table1.Visible = true;
table1.BringToFront();
}
}
}
@@ -0,0 +1,129 @@
<?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="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="columnModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>224, 29</value>
</metadata>
<metadata name="tableModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>365, 29</value>
</metadata>
</root>
+313
View File
@@ -0,0 +1,313 @@
namespace 开发辅助工具.Tools
{
partial class FrmEncode
{
/// <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(FrmEncode));
this.RbChsToUnicode = new System.Windows.Forms.RadioButton();
this.RbUnicodeToChs = new System.Windows.Forms.RadioButton();
this.CbbEncodingCode = new ryControls.RyComboBox();
this.RbURLDecode = new System.Windows.Forms.RadioButton();
this.RbURLEncode = new System.Windows.Forms.RadioButton();
this.RbBase64Decode = new System.Windows.Forms.RadioButton();
this.RbBase64Encode = new System.Windows.Forms.RadioButton();
this.TxtResultCode = new ryControls.TextBoxEx2();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.RbChsToUTF8 = new System.Windows.Forms.RadioButton();
this.RbUTF8ToChs = new System.Windows.Forms.RadioButton();
this.RbMD5 = new System.Windows.Forms.RadioButton();
this.RbSHA1 = new System.Windows.Forms.RadioButton();
this.RbSHA256 = new System.Windows.Forms.RadioButton();
this.RbSHA224 = new System.Windows.Forms.RadioButton();
this.RbSHA512 = new System.Windows.Forms.RadioButton();
this.TxtFromCode = new ryControls.Controls.RichTextBox2();
this.SuspendLayout();
//
// RbChsToUnicode
//
this.RbChsToUnicode.AutoSize = true;
this.RbChsToUnicode.Location = new System.Drawing.Point(463, 8);
this.RbChsToUnicode.Name = "RbChsToUnicode";
this.RbChsToUnicode.Size = new System.Drawing.Size(101, 16);
this.RbChsToUnicode.TabIndex = 21;
this.RbChsToUnicode.Text = "中文转Unicode";
this.RbChsToUnicode.UseVisualStyleBackColor = true;
this.RbChsToUnicode.CheckedChanged += new System.EventHandler(this.RbUnicodeToChs_CheckedChanged);
//
// RbUnicodeToChs
//
this.RbUnicodeToChs.AutoSize = true;
this.RbUnicodeToChs.Location = new System.Drawing.Point(356, 8);
this.RbUnicodeToChs.Name = "RbUnicodeToChs";
this.RbUnicodeToChs.Size = new System.Drawing.Size(101, 16);
this.RbUnicodeToChs.TabIndex = 20;
this.RbUnicodeToChs.Text = "Unicode转中文";
this.RbUnicodeToChs.UseVisualStyleBackColor = true;
this.RbUnicodeToChs.CheckedChanged += new System.EventHandler(this.RbUnicodeToChs_CheckedChanged);
//
// CbbEncodingCode
//
this.CbbEncodingCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.CbbEncodingCode.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbEncodingCode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CbbEncodingCode.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbEncodingCode.FormattingEnabled = true;
this.CbbEncodingCode.Items.AddRange(new object[] {
"UTF8",
"GBK",
"GB2312",
"ASCII",
"Unicode"});
this.CbbEncodingCode.Location = new System.Drawing.Point(817, 2);
this.CbbEncodingCode.Name = "CbbEncodingCode";
this.CbbEncodingCode.Size = new System.Drawing.Size(121, 22);
this.CbbEncodingCode.TabIndex = 19;
this.CbbEncodingCode.SelectedIndexChanged += new System.EventHandler(this.CbbEncodingCode_SelectedIndexChanged);
//
// RbURLDecode
//
this.RbURLDecode.AutoSize = true;
this.RbURLDecode.Location = new System.Drawing.Point(273, 8);
this.RbURLDecode.Name = "RbURLDecode";
this.RbURLDecode.Size = new System.Drawing.Size(77, 16);
this.RbURLDecode.TabIndex = 18;
this.RbURLDecode.Text = "URLDecode";
this.RbURLDecode.UseVisualStyleBackColor = true;
this.RbURLDecode.CheckedChanged += new System.EventHandler(this.RbBase64Encode_CheckedChanged);
//
// RbURLEncode
//
this.RbURLEncode.AutoSize = true;
this.RbURLEncode.Location = new System.Drawing.Point(190, 8);
this.RbURLEncode.Name = "RbURLEncode";
this.RbURLEncode.Size = new System.Drawing.Size(77, 16);
this.RbURLEncode.TabIndex = 17;
this.RbURLEncode.Text = "URLEncode";
this.RbURLEncode.UseVisualStyleBackColor = true;
this.RbURLEncode.CheckedChanged += new System.EventHandler(this.RbBase64Encode_CheckedChanged);
//
// RbBase64Decode
//
this.RbBase64Decode.AutoSize = true;
this.RbBase64Decode.Location = new System.Drawing.Point(101, 8);
this.RbBase64Decode.Name = "RbBase64Decode";
this.RbBase64Decode.Size = new System.Drawing.Size(83, 16);
this.RbBase64Decode.TabIndex = 16;
this.RbBase64Decode.Text = "Base64解码";
this.RbBase64Decode.UseVisualStyleBackColor = true;
this.RbBase64Decode.CheckedChanged += new System.EventHandler(this.RbBase64Encode_CheckedChanged);
//
// RbBase64Encode
//
this.RbBase64Encode.AutoSize = true;
this.RbBase64Encode.Checked = true;
this.RbBase64Encode.Location = new System.Drawing.Point(12, 8);
this.RbBase64Encode.Name = "RbBase64Encode";
this.RbBase64Encode.Size = new System.Drawing.Size(83, 16);
this.RbBase64Encode.TabIndex = 15;
this.RbBase64Encode.TabStop = true;
this.RbBase64Encode.Text = "Base64编码";
this.RbBase64Encode.UseVisualStyleBackColor = true;
this.RbBase64Encode.CheckedChanged += new System.EventHandler(this.RbBase64Encode_CheckedChanged);
//
// TxtResultCode
//
this.TxtResultCode.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtResultCode.BackColor = System.Drawing.Color.White;
this.TxtResultCode.EmptyText = "转换好后的内容";
this.TxtResultCode.Location = new System.Drawing.Point(12, 234);
this.TxtResultCode.MaxLength = 999999999;
this.TxtResultCode.Multiline = true;
this.TxtResultCode.Name = "TxtResultCode";
this.TxtResultCode.OnlyNumeric = false;
this.TxtResultCode.PasswordChar = '\0';
this.TxtResultCode.ReadOnly = true;
this.TxtResultCode.SelectedText = "";
this.TxtResultCode.SelectionLength = 0;
this.TxtResultCode.SelectionStart = 0;
this.TxtResultCode.Size = new System.Drawing.Size(926, 204);
this.TxtResultCode.TabIndex = 14;
this.TxtResultCode.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtResultCode.ToolTip = "";
this.TxtResultCode.WordWrap = true;
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// RbChsToUTF8
//
this.RbChsToUTF8.AutoSize = true;
this.RbChsToUTF8.Location = new System.Drawing.Point(665, 8);
this.RbChsToUTF8.Name = "RbChsToUTF8";
this.RbChsToUTF8.Size = new System.Drawing.Size(89, 16);
this.RbChsToUTF8.TabIndex = 23;
this.RbChsToUTF8.Text = "中文转UTF-8";
this.RbChsToUTF8.UseVisualStyleBackColor = true;
this.RbChsToUTF8.CheckedChanged += new System.EventHandler(this.RbUnicodeToChs_CheckedChanged);
//
// RbUTF8ToChs
//
this.RbUTF8ToChs.AutoSize = true;
this.RbUTF8ToChs.Location = new System.Drawing.Point(570, 8);
this.RbUTF8ToChs.Name = "RbUTF8ToChs";
this.RbUTF8ToChs.Size = new System.Drawing.Size(89, 16);
this.RbUTF8ToChs.TabIndex = 22;
this.RbUTF8ToChs.Text = "UTF-8转中文";
this.RbUTF8ToChs.UseVisualStyleBackColor = true;
this.RbUTF8ToChs.CheckedChanged += new System.EventHandler(this.RbUnicodeToChs_CheckedChanged);
//
// RbMD5
//
this.RbMD5.AutoSize = true;
this.RbMD5.Location = new System.Drawing.Point(12, 32);
this.RbMD5.Name = "RbMD5";
this.RbMD5.Size = new System.Drawing.Size(41, 16);
this.RbMD5.TabIndex = 24;
this.RbMD5.Text = "MD5";
this.RbMD5.UseVisualStyleBackColor = true;
this.RbMD5.CheckedChanged += new System.EventHandler(this.RbNoEncoding_CheckedChanged);
//
// RbSHA1
//
this.RbSHA1.AutoSize = true;
this.RbSHA1.Location = new System.Drawing.Point(72, 32);
this.RbSHA1.Name = "RbSHA1";
this.RbSHA1.Size = new System.Drawing.Size(47, 16);
this.RbSHA1.TabIndex = 25;
this.RbSHA1.Text = "SHA1";
this.RbSHA1.UseVisualStyleBackColor = true;
this.RbSHA1.CheckedChanged += new System.EventHandler(this.RbNoEncoding_CheckedChanged);
//
// RbSHA256
//
this.RbSHA256.AutoSize = true;
this.RbSHA256.Location = new System.Drawing.Point(224, 32);
this.RbSHA256.Name = "RbSHA256";
this.RbSHA256.Size = new System.Drawing.Size(59, 16);
this.RbSHA256.TabIndex = 26;
this.RbSHA256.Text = "SHA256";
this.RbSHA256.UseVisualStyleBackColor = true;
this.RbSHA256.CheckedChanged += new System.EventHandler(this.RbNoEncoding_CheckedChanged);
//
// RbSHA224
//
this.RbSHA224.AutoSize = true;
this.RbSHA224.Enabled = false;
this.RbSHA224.Location = new System.Drawing.Point(144, 32);
this.RbSHA224.Name = "RbSHA224";
this.RbSHA224.Size = new System.Drawing.Size(59, 16);
this.RbSHA224.TabIndex = 27;
this.RbSHA224.Text = "SHA224";
this.RbSHA224.UseVisualStyleBackColor = true;
this.RbSHA224.CheckedChanged += new System.EventHandler(this.RbNoEncoding_CheckedChanged);
//
// RbSHA512
//
this.RbSHA512.AutoSize = true;
this.RbSHA512.Location = new System.Drawing.Point(304, 32);
this.RbSHA512.Name = "RbSHA512";
this.RbSHA512.Size = new System.Drawing.Size(59, 16);
this.RbSHA512.TabIndex = 28;
this.RbSHA512.Text = "SHA512";
this.RbSHA512.UseVisualStyleBackColor = true;
this.RbSHA512.CheckedChanged += new System.EventHandler(this.RbNoEncoding_CheckedChanged);
//
// TxtFromCode
//
this.TxtFromCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtFromCode.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtFromCode.DetectUrls = false;
this.TxtFromCode.EmptyText = "请填写待转换的内容";
this.TxtFromCode.ForeColor = System.Drawing.Color.Black;
this.TxtFromCode.Location = new System.Drawing.Point(12, 54);
this.TxtFromCode.Name = "TxtFromCode";
this.TxtFromCode.OnlyInputText = true;
this.TxtFromCode.Size = new System.Drawing.Size(926, 174);
this.TxtFromCode.TabIndex = 29;
this.TxtFromCode.Text = "";
this.TxtFromCode.TextChanged += new System.EventHandler(this.TxtFromCode_TextChanged);
this.TxtFromCode.DoubleClick += new System.EventHandler(this.TxtFromCode_DoubleClick_1);
//
// FrmEncode
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(950, 450);
this.Controls.Add(this.TxtFromCode);
this.Controls.Add(this.RbSHA512);
this.Controls.Add(this.RbSHA224);
this.Controls.Add(this.RbSHA256);
this.Controls.Add(this.RbSHA1);
this.Controls.Add(this.RbMD5);
this.Controls.Add(this.RbChsToUTF8);
this.Controls.Add(this.RbUTF8ToChs);
this.Controls.Add(this.RbChsToUnicode);
this.Controls.Add(this.RbUnicodeToChs);
this.Controls.Add(this.CbbEncodingCode);
this.Controls.Add(this.RbURLDecode);
this.Controls.Add(this.RbURLEncode);
this.Controls.Add(this.RbBase64Decode);
this.Controls.Add(this.RbBase64Encode);
this.Controls.Add(this.TxtResultCode);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmEncode";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "编码解码";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.RadioButton RbChsToUnicode;
private System.Windows.Forms.RadioButton RbUnicodeToChs;
private ryControls.RyComboBox CbbEncodingCode;
private System.Windows.Forms.RadioButton RbURLDecode;
private System.Windows.Forms.RadioButton RbURLEncode;
private System.Windows.Forms.RadioButton RbBase64Decode;
private System.Windows.Forms.RadioButton RbBase64Encode;
private ryControls.TextBoxEx2 TxtResultCode;
private ryPaiban.Model.MenuRight menuRight1;
private System.Windows.Forms.RadioButton RbChsToUTF8;
private System.Windows.Forms.RadioButton RbUTF8ToChs;
private System.Windows.Forms.RadioButton RbMD5;
private System.Windows.Forms.RadioButton RbSHA1;
private System.Windows.Forms.RadioButton RbSHA256;
private System.Windows.Forms.RadioButton RbSHA224;
private System.Windows.Forms.RadioButton RbSHA512;
private ryControls.Controls.RichTextBox2 TxtFromCode;
}
}
@@ -0,0 +1,258 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmEncode : DockContent
{
public FrmEncode()
{
InitializeComponent();
CbbEncodingCode.SelectedIndex = 0;
}
RyWeb.QuickWeb web = new RyWeb.QuickWeb();
private void AutoCode()
{
string from_text = TxtFromCode.Text;
if (from_text == "") { TxtResultCode.Text = ""; return; }
#region 获取编码
Encoding encoding = Encoding.UTF8;
switch (CbbEncodingCode.SelectedIndex)
{
case 0: encoding = Encoding.UTF8; break;
case 1: encoding = Encoding.GetEncoding("GBK"); break;
case 2: encoding = Encoding.GetEncoding("GB2312"); break;
case 3: encoding = Encoding.ASCII; break;
case 4: encoding = Encoding.Unicode; break;
case 5: encoding = Encoding.BigEndianUnicode; break;
case 6: encoding = Encoding.UTF7; break;
case 7: encoding = Encoding.UTF32; break;
}
#endregion
if (RbBase64Encode.Checked)
{
#region Base64加密
try
{
byte[] bytedata = encoding.GetBytes(from_text);
TxtResultCode.Text = Convert.ToBase64String(bytedata, 0, bytedata.Length);
}
catch
{
TxtResultCode.Text = "";
}
#endregion
}
else if (RbBase64Decode.Checked)
{
#region Base64解密
try
{
byte[] bytes = Convert.FromBase64String(from_text);
TxtResultCode.Text = encoding.GetString(bytes);
}
catch
{
TxtResultCode.Text = "";
}
#endregion
}
else if (RbURLEncode.Checked)
{
TxtResultCode.Text = web.UrlEncode(from_text, encoding);
}
else if (RbURLDecode.Checked)
{
TxtResultCode.Text = RyWeb.WebDecode.UrlDecode(from_text, encoding);
}
else if (RbUnicodeToChs.Checked)
{
#region Unicode转字符串
try
{
TxtResultCode.Text = Regex.Unescape(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbChsToUnicode.Checked)
{
#region 字符串转Unicode码
try
{
TxtResultCode.Text = GetUnicode(from_text);
}
catch { TxtResultCode.Text = ""; }
string GetUnicode(string text)
{
string result = "";
for (int i = 0; i < text.Length; i++)
{
//if ((int)text[i] > 32 && (int)text[i] < 127)
//{
// result += text[i].ToString();
//}
//else
result += string.Format("\\u{0:x4}", (int)text[i]);
}
return result;
}
#endregion
}
else if (RbUTF8ToChs.Checked)
{
#region UTF8转字符串
try
{
TxtResultCode.Text = RyWeb.WebDecode.Unescape(from_text.Replace("&#x","%u").Replace(";", ""));
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbChsToUTF8.Checked)
{
#region 字符串转UTF8
try
{
TxtResultCode.Text = RyWeb.WebDecode.Escape(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbMD5.Checked)
{
#region 获取MD5
try
{
TxtResultCode.Text = rySafe.MD5Sha1.GetMD5(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbSHA1.Checked)
{
#region 获取SHA1
try
{
TxtResultCode.Text = rySafe.MD5Sha1.GetSHA1(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbSHA224.Checked)
{
#region 获取SHA224
try
{
//TxtResultCode.Text = rySafe.MD5Sha1.GetSHA224(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbSHA256.Checked)
{
#region 获取SHA256
try
{
TxtResultCode.Text = rySafe.MD5Sha1.GetSHA256(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
else if (RbSHA512.Checked)
{
#region 获取SHA256
try
{
TxtResultCode.Text = rySafe.MD5Sha1.GetSHA512(from_text);
}
catch { TxtResultCode.Text = ""; }
#endregion
}
}
public string get_uft8(string unicodeString)
{
UTF8Encoding utf8 = new UTF8Encoding();
Byte[] encodedBytes = utf8.GetBytes(unicodeString);
String decodedString = utf8.GetString(encodedBytes);
return decodedString;
}
public static string gb2312_utf8(string text)
{
//声明字符集
System.Text.Encoding utf8, gb2312;
//gb2312
gb2312 = System.Text.Encoding.GetEncoding("gb2312");
//utf8
utf8 = System.Text.Encoding.GetEncoding("utf-8");
byte[] gb;
gb = gb2312.GetBytes(text);
gb = System.Text.Encoding.Convert(gb2312, utf8, gb);
//返回转换后的字符
return utf8.GetString(gb);
}
private void CbbEncodingCode_SelectedIndexChanged(object sender, EventArgs e)
{
AutoCode();
}
private void RbBase64Encode_CheckedChanged(object sender, EventArgs e)
{
RadioButton chk = (RadioButton)sender;
if (chk.Checked)
{
CbbEncodingCode.Enabled = true;
}
AutoCode();
}
private void RbUnicodeToChs_CheckedChanged(object sender, EventArgs e)
{
RadioButton chk = (RadioButton)sender;
if (chk.Checked)
{
CbbEncodingCode.Enabled = false;
}
AutoCode();
}
private void RbNoEncoding_CheckedChanged(object sender, EventArgs e)
{
RadioButton chk = (RadioButton)sender;
if (chk.Checked)
{
CbbEncodingCode.Enabled = false;
}
AutoCode();
}
private void TxtFromCode_TextChanged(object sender, EventArgs e)
{
AutoCode();
}
private void TxtFromCode_DoubleClick_1(object sender, EventArgs e)
{
ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
{
Icon = Icon
};
frm.richTextBox1.Text = txt.Text;
if (frm.ShowDialog() == DialogResult.OK)
{
txt.Text = frm.richTextBox1.Text;
}
}
}
}
@@ -0,0 +1,200 @@
<?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="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAACUWAAAlFgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAACAAA
AAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAACAAAAAgAAAAFAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAIAAAANAAAAEAAAABAAAAAPAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAGAAAADwAAABAAAAAQAAAADQAA
AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAUAAAAVAAAAGQAAABgAAAAWAAAACAAAAAAAAAAAAAAACAAAABYAAAAYAAAAGQAA
ABUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAdAAAAIQAAACEAAAAcAAAABAAAAAQAAAAcAAAAIQAA
ACEAAAAdAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAmAAAAKgAAACMAAAAFAAAABQAA
ACMAAAAqAAAAJgAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAmAAAAEAAA
AAAAAAAAAAAAEAAAACYAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAA
ACMAAAAEAAAAAAAAAAAAAAAEAAAAIwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAMAAAB3AAAA3QAAAGMAAAAAAAAAAAAAAGMAAADdAAAAdwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAZwAAAPQAAAD/AAAA3gAAACIAAAAiAAAA3gAAAP8AAAD0AAAAZwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAFYAAADsAAAA/wAAAP8AAADTAAAAHQAAAB0AAADTAAAA/wAAAP8AAADsAAAAVgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABFAAAA4wAAAP8AAAD/AAAA4gAAAEcAAAAAAAAAAAAAAEcAAADiAAAA/wAA
AP8AAADjAAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAANgAAAD/AAAA/wAAAOkAAABRAAAAAAAAAAAAAAAAAAAAAAAA
AFEAAADpAAAA/wAAAP8AAADYAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAADMAAAA/wAAAP8AAADuAAAAWwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAFsAAADuAAAA/wAAAP8AAADMAAAAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAvAAAAP8AAAD/AAAA8gAAAGYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYAAADyAAAA/wAAAP8AAAC8AAAAHQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAKwAAAD/AAAA/wAAAPYAAAByAAAAAgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAHIAAAD2AAAA/wAAAP8AAACsAAAAFAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAACaAAAA/wAAAP8AAAD6AAAAfwAA
AAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAH8AAAD6AAAA/wAA
AP8AAACaAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAOsAAAD/AAAA/wAA
AOEAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAA
AOEAAAD/AAAA/wAAAOsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAmgAA
AP8AAAD/AAAA+gAAAH8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAUAAAB/AAAA+gAAAP8AAAD/AAAAmgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAUAAAArAAAAP8AAAD/AAAA9gAAAHIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAACAAAAcgAAAPYAAAD/AAAA/wAAAKwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAdAAAAvAAAAP8AAAD/AAAA8gAAAGYAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAQAAAGYAAADyAAAA/wAAAP8AAAC8AAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAAAAywAAAP8AAAD/AAAA7gAAAFwAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABcAAAA7gAAAP8AAAD/AAAAywAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAA2AAAAP8AAAD/AAAA6AAA
AFEAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAOgAAAD/AAAA/wAAANgAAAA2AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAA4wAA
AP8AAAD/AAAA4gAAAEcAAAAAAAAAAAAAAEcAAADiAAAA/wAAAP8AAADjAAAARAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABVAAAA7AAAAP8AAAD/AAAA0wAAAB0AAAAdAAAA0wAAAP8AAAD/AAAA7AAAAFUAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABnAAAA9AAAAP8AAADeAAAAIgAAACIAAADeAAAA/wAAAPQAAABnAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAB3AAAA3gAAAGMAAAAAAAAAAAAAAGMAAADeAAAAdwAA
AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAeAAAABAAAAAAAAAAAAAAABAAA
AB4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA+APAH/gBgB/4AAAf+AAAH/wAAD/+AAB//wAA//+AAf//wAP//4AB//8A
AP/+AAB//AAAP/gAAB/wAAAP4AGAB+ADwAfgB+AH4A/wB+AH4AfgA8AH4AGAB/AAAA/4AAAf/AAAP/4A
AH//AAD//4AB///AA///4Af///////////8=
</value>
</data>
</root>
+249
View File
@@ -0,0 +1,249 @@
namespace 开发辅助工具.Tools
{
partial class FrmJson
{
/// <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(FrmJson));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.textEditorControl1 = new ICSharpCode.TextEditor.TextEditorControl();
this.contextMenuStripHighlightText1 = new ryProcessManager.hezuo.ContextMenuStripHighlightText();
this.treeView1 = new System.Windows.Forms.TreeView();
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.折叠ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.BtnFormat = new System.Windows.Forms.ToolStripButton();
this.BtnPasteJson = new System.Windows.Forms.ToolStripButton();
this.BtnCopyJson = new System.Windows.Forms.ToolStripButton();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.CopyJsonByCHS = new System.Windows.Forms.ToolStripButton();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.contextMenuStrip1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.Location = new System.Drawing.Point(0, 25);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.textEditorControl1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.treeView1);
this.splitContainer1.Size = new System.Drawing.Size(800, 491);
this.splitContainer1.SplitterDistance = 400;
this.splitContainer1.TabIndex = 0;
//
// textEditorControl1
//
this.textEditorControl1.ContextMenuStrip = this.contextMenuStripHighlightText1;
this.textEditorControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.textEditorControl1.IsReadOnly = false;
this.textEditorControl1.Location = new System.Drawing.Point(0, 0);
this.textEditorControl1.Name = "textEditorControl1";
this.textEditorControl1.Size = new System.Drawing.Size(400, 491);
this.textEditorControl1.TabIndex = 22;
//
// contextMenuStripHighlightText1
//
this.contextMenuStripHighlightText1.Name = "contextMenuStripHighlightText1";
this.contextMenuStripHighlightText1.Size = new System.Drawing.Size(101, 186);
//
// treeView1
//
this.treeView1.ContextMenuStrip = this.contextMenuStrip1;
this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeView1.FullRowSelect = true;
this.treeView1.HideSelection = false;
this.treeView1.HotTracking = true;
this.treeView1.ItemHeight = 20;
this.treeView1.Location = new System.Drawing.Point(0, 0);
this.treeView1.Name = "treeView1";
this.treeView1.Size = new System.Drawing.Size(396, 491);
this.treeView1.TabIndex = 0;
this.treeView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TreeView1_MouseDown);
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.复制键名ToolStripMenuItem,
this.复制键值ToolStripMenuItem,
this.toolStripMenuItem1,
this.展开ToolStripMenuItem,
this.折叠ToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(125, 98);
//
// 复制键名ToolStripMenuItem
//
this.复制键名ToolStripMenuItem.Name = "复制键名ToolStripMenuItem";
this.复制键名ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.复制键名ToolStripMenuItem.Text = "复制键名";
this.复制键名ToolStripMenuItem.Click += new System.EventHandler(this.复制键名ToolStripMenuItem_Click);
//
// 复制键值ToolStripMenuItem
//
this.复制键值ToolStripMenuItem.Name = "复制键值ToolStripMenuItem";
this.复制键值ToolStripMenuItem.Size = new System.Drawing.Size(124, 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(121, 6);
//
// 展开ToolStripMenuItem
//
this.展开ToolStripMenuItem.Name = "展开ToolStripMenuItem";
this.展开ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.展开ToolStripMenuItem.Text = "展开";
this.展开ToolStripMenuItem.Click += new System.EventHandler(this.展开ToolStripMenuItem_Click);
//
// 折叠ToolStripMenuItem
//
this.折叠ToolStripMenuItem.Name = "折叠ToolStripMenuItem";
this.折叠ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.折叠ToolStripMenuItem.Text = "折叠";
this.折叠ToolStripMenuItem.Click += new System.EventHandler(this.折叠ToolStripMenuItem_Click);
//
// toolStrip1
//
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.BtnFormat,
this.BtnPasteJson,
this.BtnCopyJson,
this.CopyJsonByCHS});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(800, 25);
this.toolStrip1.TabIndex = 2;
this.toolStrip1.Text = "toolStrip1";
//
// BtnFormat
//
this.BtnFormat.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.BtnFormat.Image = ((System.Drawing.Image)(resources.GetObject("BtnFormat.Image")));
this.BtnFormat.ImageTransparentColor = System.Drawing.Color.Magenta;
this.BtnFormat.Name = "BtnFormat";
this.BtnFormat.Size = new System.Drawing.Size(48, 22);
this.BtnFormat.Text = "格式化";
this.BtnFormat.Click += new System.EventHandler(this.BtnFormat_Click);
//
// BtnPasteJson
//
this.BtnPasteJson.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.BtnPasteJson.Image = ((System.Drawing.Image)(resources.GetObject("BtnPasteJson.Image")));
this.BtnPasteJson.ImageTransparentColor = System.Drawing.Color.Magenta;
this.BtnPasteJson.Name = "BtnPasteJson";
this.BtnPasteJson.Size = new System.Drawing.Size(62, 22);
this.BtnPasteJson.Text = "粘贴Json";
this.BtnPasteJson.Click += new System.EventHandler(this.BtnPasteJson_Click);
//
// BtnCopyJson
//
this.BtnCopyJson.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.BtnCopyJson.Image = ((System.Drawing.Image)(resources.GetObject("BtnCopyJson.Image")));
this.BtnCopyJson.ImageTransparentColor = System.Drawing.Color.Magenta;
this.BtnCopyJson.Name = "BtnCopyJson";
this.BtnCopyJson.Size = new System.Drawing.Size(62, 22);
this.BtnCopyJson.Text = "复制Json";
this.BtnCopyJson.Click += new System.EventHandler(this.BtnCopyJson_Click);
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// CopyJsonByCHS
//
this.CopyJsonByCHS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.CopyJsonByCHS.Image = ((System.Drawing.Image)(resources.GetObject("CopyJsonByCHS.Image")));
this.CopyJsonByCHS.ImageTransparentColor = System.Drawing.Color.Magenta;
this.CopyJsonByCHS.Name = "CopyJsonByCHS";
this.CopyJsonByCHS.Size = new System.Drawing.Size(84, 22);
this.CopyJsonByCHS.Text = "中文转义复制";
this.CopyJsonByCHS.Click += new System.EventHandler(this.CopyJsonByCHS_Click);
//
// FrmJson
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 516);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.toolStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmJson";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "Json查看";
this.Load += new System.EventHandler(this.FrmJson_Load);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.contextMenuStrip1.ResumeLayout(false);
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private ICSharpCode.TextEditor.TextEditorControl textEditorControl1;
private System.Windows.Forms.TreeView treeView1;
private ryProcessManager.hezuo.ContextMenuStripHighlightText contextMenuStripHighlightText1;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem 复制键名ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 复制键值ToolStripMenuItem;
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripButton BtnFormat;
private System.Windows.Forms.ToolStripButton BtnPasteJson;
private System.Windows.Forms.ToolStripButton BtnCopyJson;
private ryPaiban.Model.MenuRight menuRight1;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem 展开ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 折叠ToolStripMenuItem;
private System.Windows.Forms.ToolStripButton CopyJsonByCHS;
}
}
+260
View File
@@ -0,0 +1,260 @@
using ICSharpCode.TextEditor.Document;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmJson : DockContent
{
public FrmJson()
{
InitializeComponent();
}
private void LoadTreeList(TreeNodeCollection nodes,JObject jo)
{
foreach (var item in jo)
{
if (item.Value.HasValues)
{
var node = nodes.Add(item.Key.ToString());
node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
try
{
JArray jar = JArray.Parse(item.Value.ToString());
if (jar != null)
{
for (int i = 0; i < jar.Count; i++)
{
var node1 = node.Nodes.Add(i.ToString());
node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
LoadTreeList(node1.Nodes, (JObject)JsonConvert.DeserializeObject(jar[i].ToString()));
//TreeNode new_child = new TreeNode();
//new_child.Text = jar[i].ToString();
//node.Nodes.Add(new_child);
}
}
}
catch(Exception)
{ LoadTreeList(node.Nodes, (JObject)JsonConvert.DeserializeObject(item.Value.ToString())); }
//JArray jar = JArray.Parse(item.Value.ToString());
//if (jar.Count != 0)
{
//for (int i = 0; i < jar.Count; i++)
//{
// TreeNode new_child = new TreeNode();
// new_child.Text = jar[i].ToString();
// nodes.Add(new_child);
//}
}
}
else
{
var node = nodes.Add(item.ToString());
node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
}
}
}
private void BtnFormat_Click(object sender, EventArgs e)
{
string json_text = textEditorControl1.Text;
treeView1.Nodes.Clear();
//if (Manager.Json.IsJson(json_text))
{
try
{
textEditorControl1.Document.TextContent = Manager.Json.ConvertJsonString(json_text);
textEditorControl1.Refresh();
JObject jo = null;
if (Manager.Json.IsArray(json_text))
{
var node2 = treeView1.Nodes.Add("0");
JArray jar = JArray.Parse(json_text);
ScanArray(node2.Nodes, jar);
}
else
{
jo = (JObject)JsonConvert.DeserializeObject(json_text);
Scan(treeView1.Nodes, jo);
}
void Scan(TreeNodeCollection nodes, JObject _jo)
{
IEnumerable<JProperty> properties = _jo.Properties();
foreach (JProperty item in properties)
{
if (item.Value.Type == JTokenType.Array)
{
var node2 = nodes.Add(item.Name);
node2.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
JArray jar = JArray.Parse(item.Value.ToString());
ScanArray(node2.Nodes, jar);
}
else if (item.Value.Type == JTokenType.Object)
{
var node2 = nodes.Add(item.Name);
node2.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
Scan(node2.Nodes, (JObject)JsonConvert.DeserializeObject(item.Value.ToString()));
}
else {
var node = nodes.Add(item.Name + ":" + item.Value + "|" + item.Value.Type.ToString());
node.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
}
//Console.WriteLine(item.Name + ":" + item.Value);
}
//var values = _jo.Values<JProperty>();
//foreach (var item in values)
//{
// var va = item.Value<JProperty>().Children.Children<JProperty>();
// var node = nodes.Add(item.ToString());
// //if(item.HasValues)
// //Scan(node.Nodes,(JObject)JsonConvert.DeserializeObject(item.ToString()));
//}
}
void ScanArray(TreeNodeCollection nodes, JArray jar)
{
if (jar != null)
{
for (int i = 0; i < jar.Count; i++)
{
var node3 = nodes.Add(i.ToString());
if (jar[i].Type == JTokenType.Object)
{
Scan(node3.Nodes, (JObject)jar[i]);
}
else
{
node3.Nodes.Add(jar[i].ToString());
node3.Tag = new JsonInfo() { name = jar[i].ToString() };
}
}
}
}
//if (Manager.Json.IsArray(json_text))
//{
// JArray jar = JArray.Parse(json_text);
// if (jar != null)
// {
// for (int i = 0; i < jar.Count; i++)
// {
// var node1 = treeView1.Nodes.Add(i.ToString());
// LoadTreeList(node1.Nodes, (JObject)JsonConvert.DeserializeObject(jar[i].ToString()));
// //TreeNode new_child = new TreeNode();
// //new_child.Text = jar[i].ToString();
// //node.Nodes.Add(new_child);
// }
// }
//}
//else
//{
// jo = (JObject)JsonConvert.DeserializeObject(json_text);
//}
//LoadTreeList(treeView1.Nodes,jo);
//for (int i = 0; i < jo.Count; i++)
//{
// treeView1.Nodes.Add(jo..ToString());
//}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
//else
//{
// MessageBox.Show("无效的Json内容", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// textEditorControl1.Document.TextContent = json_text;
// textEditorControl1.Refresh();
//}
}
public void LoadJson(string json_text)
{
textEditorControl1.Document.TextContent = json_text;
textEditorControl1.Refresh();
BtnFormat.PerformClick();
}
private void 复制键名ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode == null) { return; }
JsonInfo item = (JsonInfo)treeView1.SelectedNode.Tag;
ryCommon.RyFiles.CopyToClip(item.name);
}
private void 复制键值ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode == null) { return; }
if (treeView1.SelectedNode.Tag == null) { return; }
JsonInfo item = (JsonInfo)treeView1.SelectedNode.Tag;
ryCommon.RyFiles.CopyToClip(item.value);
}
private void BtnPasteJson_Click(object sender, EventArgs e)
{
textEditorControl1.BeginUpdate();
textEditorControl1.Document.TextContent = Clipboard.GetText();
textEditorControl1.Refresh();
textEditorControl1.EndUpdate();
BtnFormat.PerformClick();
}
private void BtnCopyJson_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.CopyToClip(textEditorControl1.Text);
}
private void FrmJson_Load(object sender, EventArgs e)
{
textEditorControl1.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("JSON");
}
private void TreeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)//判断你点的是不是右键
{
Point ClickPoint = new Point(e.X, e.Y);
TreeNode CurrentNode = treeView1.GetNodeAt(ClickPoint);
if (CurrentNode != null)//判断你点的是不是一个节点
{
treeView1.SelectedNode = CurrentNode;//选中这个节点
}
}
}
private void 展开ToolStripMenuItem_Click(object sender, EventArgs e)
{
treeView1.ExpandAll();
}
private void 折叠ToolStripMenuItem_Click(object sender, EventArgs e)
{
treeView1.CollapseAll();
}
private void CopyJsonByCHS_Click(object sender, EventArgs e)
{
try
{
JObject jo = (JObject)JsonConvert.DeserializeObject(textEditorControl1.Text);
var aa = Newtonsoft.Json.JsonConvert.SerializeObject(jo, new Newtonsoft.Json.JsonSerializerSettings() { StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeNonAscii });
ryCommon.RyFiles.CopyToClip(aa);
}
catch(Exception ex) {
MessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
public class JsonInfo
{
public string name = "";
public string value = "";
}
}
@@ -0,0 +1,269 @@
<?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="contextMenuStripHighlightText1.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>262, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>427, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BtnFormat.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="BtnPasteJson.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="BtnCopyJson.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="CopyJsonByCHS.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>537, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAA
AAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA
AwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAA
AwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwEAAAMBAAADAgAAAwMAAAMDAAADBAAAAwQAAAMFAAADBQAA
AwYAAAMGAAADBgAAAwYAAAMGAAADBgAAAwYAAAMGAAADBQAAAwUAAAMEAAADBAAAAwMAAAMDAAADAgAA
AwEAAAMBAAADAAAAAwAAAAMAAAADAAAAAwMAAAMMAAADFQAAAxsAAAMfAAACIgAAACIAAAAjAAAAJQAA
ACcAAAAoAAAAKQAAACkAAAAqAAAAKgAAACoAAAAqAAAAKQAAACkAAAAoAAAAJwAAACUAAAAjAAAAIQAA
ACIAAAMfAAADGwAAAxUAAAMMAAADAwAAAwAAAAMAAAADBAAAAxMAAAMhAAADKQAAAi4FBQgzaWlrYZSU
lo+YmJqVmJialpmZmpaampuXmpqbl5qanJeampyYm5ucmJubnJebm5yXm5ucl5ubnJabm5yWm5uclZqa
nJSDg4V2JiYoPAAAAC0AAAMpAAADIQAAAxMAAAMEAAADAAAAAwAAAAMBAAADAwAAAwYAAAIIAAAACLGx
slvFxcboysrL/8zMzf/Ozs//z8/Q/9HR0v/S0tP/09PU/9PT1P/T09T/09PU/9PT1P/T09T/0tLT/9HR
0v/Q0NH/zs7P/8vLzPnAwMKXV1dZEgAAAAgAAAMGAAADAwAAAwEAAAMAAAADAAAAAwAAAAMAAAADAJSU
lgDU1NUIy8vMtszMzf/Ozs//0NDR/9LS0//U1NX/1dXW/9bW1//X19j/2NjZ/9jY2f/Y2Nn/2NjZ/9fX
2P/X19j/1tbX/9TU1f/T09T/0dHS/8/P0O3Q0NEzwcHCAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAA
AwAAAAMA0tLTANLS0xHOztDL0NDR/9PT1P/V1db/19fY/9jY2f/a2tv/29vc/9zc3f/d3d7/3d3e/93d
3v/d3d7/3Nzd/9vb3P/a2tv/2dna/9fX2P/V1db/09PU99LS00bS0tMAAAADAAAAAwAAAAMAAAAAAAAA
AAAAAAAAYoKHAHiTmADLztAA19fYEdPT1MvU1NX/19fY/9nZ2v/b29z/3d3e/9/f4P/g4OH/4ODh/+Dh
4f/h4eL/4eHi/+Hh4f/g4OH/4ODh/9/f4P/e3t//3Nzd/9ra2//Y2Nn319bXRdHT1ABOcngATnJ4AAAA
AAAAAAAAAAAAAFyAhwAAGyQANWFpAH2angDS09QS1dXXy9fX2P/a2tv/3Nzd/97e3//f3+D/3+Dh/+Dg
4f/g4eL/4OHi/+Hh4v/h4eL/4eHi/+Dh4v/g4eH/4ODh/9/f4P/e39//3d3e/9rb3PfY2NlG2d7fAC9d
ZQBHbnYAR292AAAAAAAAAAAAgYeRAC9cYwA7ZWwtNmBojTtja6NkgojrbIiN/2yJjv9tiY//bYqP/22K
j/9uio//boqP/26KkP9uipD/boqQ/26KkP9uipD/boqQ/26KkP9uio//boqP/22Kj/9tiY//bIiN/Elv
dbc0X2aYOGNqVVJ3fgNLcXgAAAAAAAAAAABRe4EAU32DCDppcK44Zm7/N2Zt/zVkbP83ZW3/NGNr/zVk
bP80ZGv/NGNr/zdmbf80ZGv/NGNr/zVkbP80Y2v/NGRr/zdmbf80Y2v/NGNr/zVkbP81ZGz/NWRs/zVk
bP80ZGv/OGZt/zhmbv85Z2/mPmxzLj1rcgAAAAAAAAAAAFB/hQBOfYQSP3J5zj1wd/9OfIP/oLi8/7fJ
zP+DoaX/P3B3/059g/+as7f/ssXI/6S6vv9ag4n/O292/1+Jj/+mvcD/t8nM/5+2uv9UfoT/PXB4/4yq
rv9kiY//OW11/2ePlP+kur3/SXZ9/z1wd/Y+cXhBPnF4AAAAAAAAAAAAVYeOAFOGjBJFfIPNQHmA/5W1
uP/M19n/jq6y/+Do6f9hiY//obzA/77N0P9qlZr/r8jL/7zLzv9YhYv/0t/g/6q/wv95oaX/vtLV/8HP
0f9MfYP/xtfZ/4Kgpf9MgIf/0N7g/+/y8v9Zg4n/QXqB9UN7gkBDe4IAAAAAAAAAAABZkZYAV4+VEkqG
jc1GhIv/gKuw/3igpP9QiY//1+Tl/3WYnf9xoKX/Z5ab/2eYnv+4z9L/xdLU/4aorP/W4OH/T4KI/0KB
iP9lmZ7/4Onq/2uSl//E19n/g6Km/5y7vv/Y4OL/3OPk/1yIjv9GhIv1SIWMQEiFjAAAAAAAAAAAAF6a
nwBcmZ4ST5CWzU2Plf9Nj5X/TI6U/1qXnf/X5eb/dZqf/2ifpP/H293/1+Pl/73S1P9tnaL/kbm8/83Y
2v9MhYv/TI+V/1+boP/e6er/dpug/8PY2v+xw8b/0Nze/4Glqf/U4OH/Xo2S/0yOlPVNj5VATY+VAAAA
AAAAAAAAYqOoAGGiqBJUmqDNUpmf/1KZn/9SmZ//X6Gm/9nn6P92nKH/qMrN/8XT1f9hmp//h7e7/4Ss
sP92qq//4enq/3Gcof9TmJ7/j73B/93l5v9ilJn/yt/h//X29/+Rr7P/ZqGm/9jk5f9hkZf/UZie9VKZ
n0BSmZ8AAAAAAAAAAABnrLEAYqiuE16prs1apqv/V6Oo/1aiqP9hqK7/zuLj/3Oeo/+Dur7/zd/g/7fS
1P/U5OX/hq2x/1afpP+q0dT/1OPk/8Tb3f/W5eb/kLS4/1Wdo//D3+H/wtLU/1WWnP9rr7T/zd7f/2GX
nP9cqK31WKSqQVijqQAAAAAAAAAAAGy0uQBkr7QPZbS5yXK+wv9tub7/bLm+/226vv+FxMj/cba7/2y5
vv+Dxcn/mNDT/4PBxf9rtrv/bLm+/266v/+JyMz/l8/T/4C/xP9rtrv/bLm+/4HEyP95ur//are8/3C7
wP+Ew8f/cbm9/2q5vvZcrbI+Xq6zAAAAAAAAAAAAcbzAAJDAxQFjtrtxa77D5XXEye54xcr7ecbK/3jF
yf95xsr/ecbK/3jFyf93xcn/eMXK/3nGyv95xsr/ecbK/3fFyf93xcn/eMXK/3nGyv95xsr/eMXJ/3jG
yv95xsr/ecbK/nXEyfJwwcbsZLi9q2W2uhVmt7sAAAAAAAAAAABvub4AaLvAAG/DyAVhur8nfsXJQMTd
39bK4OH/yuDi/8rg4v/K4OL/y+Di/8vg4v/L4eL/y+Hi/8vh4v/L4eP/y+Hj/8vh4//L4eL/y+Hi/8vg
4v/L4OL/y+Di/8vg4v/K4OH5ptPWaVm3vSxovsMQW7K3AFKprgAAAAAAAAAAAK7a3QBpvsIAa77DAJDL
zwD/9fQO7Ovry+zs7P/t7e3/7e3t/+3t7f/u7e3/7u3u/+7u7v/u7u7/7+7u/+/u7//v7u//7+7u/+7u
7v/u7u7/7u3u/+7t7v/t7e3/7e3t/+3t7ffx7u5Ds9jaAGi9wgBVtrwAf8bKAAAAAAAAAAAAAAAAAAAA
AAAAAAAA7OztAOvs7BHq6+vL6+zs/+vs7P/r7Oz/6+zs/+zs7f/s7e3/7O3t/+3t7v/t7e7/7e3u/+3t
7v/t7e7/7e3u/+zt7f/s7e3/7e3u/+zt7f/s7ez/6+zs9+vs7Ebr7OwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADs7e0A6+zsEerr68vr7Oz/6+zs/+vs7P/s7O3/7Ozt/+zt7f/s7e3/7e3u/+3t
7v/t7e7/7e3u/+3t7v/t7e7/7Ozt/+Xm5v/i4uP/4uLj/+Hi4//j5OT45+joRefo6AAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzt7QDr7OwR6uvry+vs7P/r7Oz/6+zs/+zs7f/s7O3/7O3t/+zt
7f/t7e7/7e3u/+3t7v/t7e7/7e3u/+rr7P/Ky8z/pqeo/6OjpP+nqKn/rKyt/7a2t7bQ0dIZzM3OAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7O3tAOvs7BHq6+vL6+zs/+vs7P/r7Oz/6+zs/+zs
7f/s7e3/7O3t/+3t7v/t7e7/7e3u/+3t7v/u7u//1dXW/5aWmP+Pj5D/lpaX/5ycnf+hoaK3o6OkH76+
vwDs7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwA6+vsEerq6svr7Oz/6+zs/+vs
7P/r7Oz/7Ozt/+zs7f/s7e3/7O3t/+3t7v/t7e7/7e3u/+3t7v/BwsP/jo+Q/5SVlv+am5z/oKChtqeo
qR+ioqMAg4OEAL+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvs7ADq6+sR6erqzOrr
6//r7Oz/6+zs/+vs7P/s7O3/7Ozt/+zt7f/s7e3/7O3t/+zt7f/t7e7/7O3t/8DBwf+RkpP/l5iZ/52e
n7WlpaYfoKGiAIOEhQDAwcEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6uvrAOnq
6gzo6enC6urr/+vs7P/r7Oz/6+zs/+vs7P/s7O3/7Ozt/+zs7f/s7e3/7O3t/+zt7f/s7e3/wcLD/5WV
lv+am5y0n6ChHp2enwCFhYYAwMDBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADr7OwA4ePjAOjp6XHp6ur56uvr/+vs7P/r7Oz/6+zs/+vs7P/s7O3/7Ozt/+zs7f/s7O3/7Ozt/+zs
7f/Dw8X/l5iZtJycnR2cnJ0Aj5CRAL6+vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAOrr6wDp6uoA6erqCunq6mDq6+ug6+zspevs7KXr7Oyl6+zspevs7KXs7O2l7Oztpezs
7aXs7O2l7Oztps/Q0Y6ampsem5ydAJaVlgChoqMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjp6QDp6uoA5+joAOrr6wHq6+sC6+zsAuvs7ALr7OwC6+zsAuns
6gLr7OwC7OztAuzs7QLq6+sC////AJaXmACPj5AAoKChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvs7ADs7O0A6uvrAOvs7ADr7OwA6+zsAOvs
7ADr7OwA6+zsAOzs7QDs7O0A7OztAOvs7ADi4+MAs7O0AMnKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAOAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAD/AAAA/wAAAP8AAAD/AA
AA/wAAAf8AAAP/AAAH/wAAD/+AAB//wAA/8=
</value>
</data>
</root>
+301
View File
@@ -0,0 +1,301 @@
namespace 开发辅助工具.Tools
{
partial class FrmPathInfo
{
/// <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.table1 = new XPTable.Models.Table();
this.columnModel1 = new XPTable.Models.ColumnModel();
this.ColName = new XPTable.Models.TextColumn();
this.ColPath = new XPTable.Models.TextColumn();
this.ColDes = new XPTable.Models.TextColumn();
this.tableModel1 = new XPTable.Models.TableModel();
this.BtnClean = new ryControls.ButtonEx();
this.BtnBatchZip = new ryControls.ButtonEx();
this.LblState = new System.Windows.Forms.Label();
this.BtnInsertUpdate = new ryControls.ButtonEx();
this.BtnUpdateDll = new ryControls.ButtonEx();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.BtnCreateFolder = new ryControls.ButtonEx();
this.label1 = new System.Windows.Forms.Label();
this.TxtFolder = new ryControls.TextBoxEx2();
this.label2 = new System.Windows.Forms.Label();
this.TxtUSQ_Ver = new ryControls.TextBoxEx2();
this.BtnUpdateDllVer = new ryControls.ButtonEx();
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// table1
//
this.table1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.table1.ColumnModel = this.columnModel1;
this.table1.EnableToolTips = true;
this.table1.FullRowSelect = true;
this.table1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.table1.Location = new System.Drawing.Point(12, 142);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(905, 362);
this.table1.TabIndex = 20;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
this.table1.DoubleClick += new System.EventHandler(this.table1_DoubleClick);
//
// columnModel1
//
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
this.ColName,
this.ColPath,
this.ColDes});
//
// ColName
//
this.ColName.Editable = false;
this.ColName.Tag = null;
this.ColName.Text = "名称";
this.ColName.Width = 150;
//
// ColPath
//
this.ColPath.Editable = false;
this.ColPath.Tag = null;
this.ColPath.Text = "路径";
this.ColPath.Width = 200;
//
// ColDes
//
this.ColDes.Editable = false;
this.ColDes.Tag = null;
this.ColDes.Text = "备注";
this.ColDes.Width = 400;
//
// BtnClean
//
this.BtnClean.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnClean.Location = new System.Drawing.Point(216, 20);
this.BtnClean.Name = "BtnClean";
this.BtnClean.Size = new System.Drawing.Size(99, 34);
this.BtnClean.TabIndex = 22;
this.BtnClean.Text = "清理垃圾";
this.toolTip1.SetToolTip(this.BtnClean, "清理debug目录下的pdb文件");
this.BtnClean.UseVisualStyleBackColor = true;
this.BtnClean.Click += new System.EventHandler(this.BtnClean_Click);
//
// BtnBatchZip
//
this.BtnBatchZip.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnBatchZip.Location = new System.Drawing.Point(531, 20);
this.BtnBatchZip.Name = "BtnBatchZip";
this.BtnBatchZip.Size = new System.Drawing.Size(99, 34);
this.BtnBatchZip.TabIndex = 23;
this.BtnBatchZip.Text = "一键打包";
this.toolTip1.SetToolTip(this.BtnBatchZip, "一键混淆并打包当前项目生成的文件。");
this.BtnBatchZip.UseVisualStyleBackColor = true;
this.BtnBatchZip.Click += new System.EventHandler(this.BtnBatchZip_Click);
//
// LblState
//
this.LblState.AutoSize = true;
this.LblState.Location = new System.Drawing.Point(10, 127);
this.LblState.Name = "LblState";
this.LblState.Size = new System.Drawing.Size(83, 12);
this.LblState.TabIndex = 24;
this.LblState.Text = "状态:准备就绪";
//
// BtnInsertUpdate
//
this.BtnInsertUpdate.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnInsertUpdate.Location = new System.Drawing.Point(321, 20);
this.BtnInsertUpdate.Name = "BtnInsertUpdate";
this.BtnInsertUpdate.Size = new System.Drawing.Size(99, 34);
this.BtnInsertUpdate.TabIndex = 25;
this.BtnInsertUpdate.Text = "插入更新日志";
this.toolTip1.SetToolTip(this.BtnInsertUpdate, "将当前版本加入更新日志");
this.BtnInsertUpdate.UseVisualStyleBackColor = true;
this.BtnInsertUpdate.Click += new System.EventHandler(this.BtnInsertUpdate_Click);
//
// BtnUpdateDll
//
this.BtnUpdateDll.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnUpdateDll.Location = new System.Drawing.Point(6, 20);
this.BtnUpdateDll.Name = "BtnUpdateDll";
this.BtnUpdateDll.Size = new System.Drawing.Size(99, 34);
this.BtnUpdateDll.TabIndex = 26;
this.BtnUpdateDll.Text = "更新引用dll";
this.toolTip1.SetToolTip(this.BtnUpdateDll, "将当前输出文件夹里的dll文件更新到最新版\r\n将当前项目文件里的引用dll位置修改至输出目录。");
this.BtnUpdateDll.UseVisualStyleBackColor = true;
this.BtnUpdateDll.Click += new System.EventHandler(this.BtnUpdateDll_Click);
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.BtnUpdateDllVer);
this.groupBox1.Controls.Add(this.BtnCreateFolder);
this.groupBox1.Controls.Add(this.BtnUpdateDll);
this.groupBox1.Controls.Add(this.BtnInsertUpdate);
this.groupBox1.Controls.Add(this.BtnBatchZip);
this.groupBox1.Controls.Add(this.BtnClean);
this.groupBox1.Location = new System.Drawing.Point(12, 62);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(905, 62);
this.groupBox1.TabIndex = 27;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "项目管理";
//
// BtnCreateFolder
//
this.BtnCreateFolder.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnCreateFolder.Location = new System.Drawing.Point(426, 20);
this.BtnCreateFolder.Name = "BtnCreateFolder";
this.BtnCreateFolder.Size = new System.Drawing.Size(99, 34);
this.BtnCreateFolder.TabIndex = 27;
this.BtnCreateFolder.Text = "创建毕方文件夹";
this.BtnCreateFolder.UseVisualStyleBackColor = true;
this.BtnCreateFolder.Click += new System.EventHandler(this.BtnCreateFolder_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(77, 12);
this.label1.TabIndex = 29;
this.label1.Text = "毕方项目路径";
//
// TxtFolder
//
this.TxtFolder.BackColor = System.Drawing.Color.White;
this.TxtFolder.EmptyText = "";
this.TxtFolder.Location = new System.Drawing.Point(12, 23);
this.TxtFolder.MaxLength = 999999999;
this.TxtFolder.Multiline = false;
this.TxtFolder.Name = "TxtFolder";
this.TxtFolder.OnlyNumeric = false;
this.TxtFolder.PasswordChar = '\0';
this.TxtFolder.ReadOnly = false;
this.TxtFolder.SelectedText = "";
this.TxtFolder.SelectionLength = 0;
this.TxtFolder.SelectionStart = 0;
this.TxtFolder.Size = new System.Drawing.Size(664, 33);
this.TxtFolder.TabIndex = 28;
this.TxtFolder.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtFolder.ToolTip = "";
this.TxtFolder.WordWrap = true;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(695, 8);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(47, 12);
this.label2.TabIndex = 30;
this.label2.Text = "USQ版本";
//
// TxtUSQ_Ver
//
this.TxtUSQ_Ver.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtUSQ_Ver.EmptyText = "";
this.TxtUSQ_Ver.Location = new System.Drawing.Point(682, 24);
this.TxtUSQ_Ver.MaxLength = 999999999;
this.TxtUSQ_Ver.Multiline = false;
this.TxtUSQ_Ver.Name = "TxtUSQ_Ver";
this.TxtUSQ_Ver.OnlyNumeric = false;
this.TxtUSQ_Ver.PasswordChar = '\0';
this.TxtUSQ_Ver.ReadOnly = false;
this.TxtUSQ_Ver.SelectedText = "";
this.TxtUSQ_Ver.SelectionLength = 0;
this.TxtUSQ_Ver.SelectionStart = 0;
this.TxtUSQ_Ver.Size = new System.Drawing.Size(81, 33);
this.TxtUSQ_Ver.TabIndex = 31;
this.TxtUSQ_Ver.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.TxtUSQ_Ver.ToolTip = "";
this.TxtUSQ_Ver.WordWrap = true;
//
// BtnUpdateDllVer
//
this.BtnUpdateDllVer.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnUpdateDllVer.Location = new System.Drawing.Point(111, 20);
this.BtnUpdateDllVer.Name = "BtnUpdateDllVer";
this.BtnUpdateDllVer.Size = new System.Drawing.Size(99, 34);
this.BtnUpdateDllVer.TabIndex = 28;
this.BtnUpdateDllVer.Text = "更新dll版本";
this.toolTip1.SetToolTip(this.BtnUpdateDllVer, "将当前输出文件夹里的dll文件更新到最新版");
this.BtnUpdateDllVer.UseVisualStyleBackColor = true;
this.BtnUpdateDllVer.Click += new System.EventHandler(this.BtnUpdateDllVer_Click);
//
// FrmPathInfo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(929, 516);
this.CloseButton = false;
this.CloseButtonVisible = false;
this.Controls.Add(this.TxtUSQ_Ver);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtFolder);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.LblState);
this.Controls.Add(this.table1);
this.Name = "FrmPathInfo";
this.Text = "项目";
this.Load += new System.EventHandler(this.FrmPathInfo_Load);
((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private XPTable.Models.Table table1;
private XPTable.Models.ColumnModel columnModel1;
private XPTable.Models.TextColumn ColName;
private XPTable.Models.TextColumn ColPath;
private XPTable.Models.TextColumn ColDes;
private XPTable.Models.TableModel tableModel1;
private ryControls.ButtonEx BtnClean;
private ryControls.ButtonEx BtnBatchZip;
private System.Windows.Forms.Label LblState;
private ryControls.ButtonEx BtnInsertUpdate;
private ryControls.ButtonEx BtnUpdateDll;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label1;
private ryControls.TextBoxEx2 TxtFolder;
private ryControls.ButtonEx BtnCreateFolder;
private System.Windows.Forms.Label label2;
private ryControls.TextBoxEx2 TxtUSQ_Ver;
private ryControls.ButtonEx BtnUpdateDllVer;
}
}
@@ -0,0 +1,471 @@
using Microsoft.Win32;
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Xml;
using WeifenLuo.WinFormsUI.Docking;
using 开发辅助工具.Manager;
namespace 开发辅助工具.Tools
{
public partial class FrmPathInfo : DockContent
{
string SelectPath = "";
public FrmPathInfo(string _Path)
{
SelectPath = _Path;
InitializeComponent();
LoadPath();
}
/// <summary>
/// 获取毕方标准项目根路径
/// </summary>
/// <returns></returns>
private string GetBFFolderPath()
{
var _path = SelectPath;
if(System.IO.Directory.Exists(_path))
{
if (System.IO.File.Exists(_path + "\\查看项目.ryp"))
{
return _path;
}
}
while (true)
{
_path = System.IO.Path.GetDirectoryName(_path.TrimEnd('\\')).TrimEnd('\\');
if (System.IO.File.Exists(_path + "\\查看项目.ryp"))
{
return _path;
}
else
{
if (_path.Length < 4) { break; }
}
}
return "";
}
private void LoadPath()
{
var _path = GetBFFolderPath();
TxtFolder.Text = _path;
if (_path!="")
{
var folder = _path;
ryCommon.Ini ini = new Ini(folder + "\\查看项目.ryp");
TxtUSQ_Ver.Text = ini.ReadIni("project", "usqver");
AddPath(true,"Debug输出目录", "Bin\\Debug","包含调试信息的输出目录");
AddPath(true, "Release输出目录", "Bin\\Release", "不包含调试信息的输出目录");
AddPath(true,"源代码目录", "Source", "含有项目源码");
AddPath(true, "安装包目录", "Publish", "对外发布的安装文件");
AddPath(false, " - 免安装输出包目录", "Publish\\Green", "绿色免安装版本目录,通常为zip压缩包");
AddPath(false, " - 安装输出包目录", "Publish\\Install", "需要安装的版本目录,通常为exe压缩包");
AddPath(false, " - 输出底包目录", "Publish\\OriginalFiles", "输出底包,保留完整的文件结构,绿色版、安装包都以此来制作");
AddPath(false, " - 升级输出包目录", "Publish\\UpdateFile", "升级包目录,通常为zip压缩包,非完整输出包");
AddPath(true, "帮助文件目录", "Help", "帮助文档");
AddPath(true, "外部资源目录", "Res", "项目用到的资源备份,例外图标、图片、第三方项目");
AddPath(false, " - 第三方组件项目", "Res\\ThirdParty", "包含第三方组件的项目");
AddPath(false, " - 图片文件夹", "Res\\Images", "含下载的项目图片");
AddPath(true, "更新日志", "更新日志.txt", "当前项目更新日志文件");
AddPath(true, "更新日志", "更新日志.md", "当前项目更新日志文件");
AddPath(true, "更新日志", "CHANGELOG.md", "当前项目更新日志文件");
AddPath(true, "自述文件", "README.md", "当前项目自述文件");
void AddPath(bool bold,string name,string path,string des)
{
if (System.IO.File.Exists(folder + "\\" + path) || System.IO.Directory.Exists(folder + "\\" + path))
{
XPTable.Models.Row itemList = new XPTable.Models.Row
{
Tag = folder + "\\" + path
};
var cell_name = new XPTable.Models.Cell(name);
if(bold)
cell_name.ForeColor=Color.Blue;
else
{ cell_name.ForeColor = Color.Tomato; }
itemList.Cells.Add(cell_name);
itemList.Cells.Add(new XPTable.Models.Cell(path));
var cell = new XPTable.Models.Cell(des);
cell.ForeColor = Color.Gray;
itemList.Cells.Add(cell);
table1.TableModel.Rows.Add(itemList);
}
}
}
}
private void CloseApp()
{
Itrycn_Db.IsCloseConfirm = false;
this.DockPanel.FindForm().Close();
}
/// <summary>
/// 获取Notepad++路径
/// </summary>
/// <returns></returns>
private string GetNotepadPlusPath()
{
var path = "";
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Notepad++", true);
if (softwareRun.GetValue("") != null)
{
string notepad_plus_path = softwareRun.GetValue("").ToString() + "\\notepad++.exe";
if (System.IO.File.Exists(notepad_plus_path))
{
path = notepad_plus_path;
}
}
softwareRun.Close();
LMach.Close();
}
catch
{
}
return path;
}
private void FrmProject_Load(object sender, EventArgs e)
{
}
private void table1_DoubleClick(object sender, EventArgs e)
{
if (table1.SelectedItems.Length == 0) { return; }
var path = table1.SelectedItems[0].Tag.ToString();
if (System.IO.Directory.Exists(path))
{
ryCommon.RyFiles.OpenFile(path);
}
else if (System.IO.File.Exists(path))
{
if (System.IO.Path.GetExtension(path).ToLower() == ".txt")
{
string notepad_plus_path = GetNotepadPlusPath();
if (System.IO.File.Exists(notepad_plus_path))
{
ryCommon.RyFiles.RunFile(notepad_plus_path, "\"" + path + "\"");
}
else
{
ryCommon.RyFiles.OpenFile(path);
}
}
else if (System.IO.Path.GetExtension(path).ToLower() == ".md")
{
ryCommon.RyFiles.OpenFile(path);
}
else
{
ryCommon.RyFiles.OpenFolderGotoFile(path);
}
}
}
private void BtnClean_Click(object sender, EventArgs e)
{
switch (MessageBox.Show("是否要进行清理不必要的文件,例如*.pdb", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{
case DialogResult.No:
return;
}
BtnClean.Enabled = false;
var folder = GetBFFolderPath();
if(folder!="")
{
if (System.IO.Directory.Exists(folder + "\\Bin\\Debug"))
{
Itrycn_Db.DeleteFiles(folder + "\\Bin\\Debug", "*.pdb");
Itrycn_Db.DeleteFiles(folder + "\\Bin\\Debug", "*.dcu");
}
if (System.IO.Directory.Exists(folder + "\\Bin\\Release"))
{
Itrycn_Db.DeleteFiles(folder + "\\Bin\\Release", "*.pdb");
Itrycn_Db.DeleteFiles(folder + "\\Bin\\Release", "*.dcu");
}
if (System.IO.Directory.Exists(folder + "\\Source"))
{
Itrycn_Db.DeleteFiles(folder + "\\Source", "*.pdb");
Itrycn_Db.DeleteFiles(folder + "\\Source", "*.dcu");
}
}
BtnClean.Enabled = true;
MessageBox.Show("清理完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// 等待进程执行完毕
/// </summary>
/// <param name="cmd_text"></param>
/// <returns></returns>
public static string Read_Prog(string exe,string cmd_text)
{
String cmd = exe;
Process p = new Process
{
StartInfo = new System.Diagnostics.ProcessStartInfo
{
FileName = cmd,//设定程序名
Arguments = cmd_text,
UseShellExecute = false, //关闭shell的使用
RedirectStandardInput = true, //重定向标准输入
RedirectStandardOutput = true, //重定向标准输出
RedirectStandardError = false, //重定向错误输出
CreateNoWindow = true//设置不显示窗口
}
};
p.Start();
string result = p.StandardOutput.ReadToEnd();
p.WaitForExit(20000);
p.Close();
return result;
}
private void BtnBatchZip_Click(object sender, EventArgs e)
{
BtnBatchZip.Enabled = false;
Thread th = new Thread(Start);
th.Start();
void Start()
{
var com_mode = "Debug";
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
var ds = db.ReadData("select * from Settings where name='Setting'");
if (mydb.HaveData(ds))
{
var row = mydb.GetData(ds);
ryCommon.Storage mStor = new ryCommon.Storage(row["value"].ToString());
mStor.SelectNodeBySet();
var ReactorPath = mStor.GetAttrValue("ReactorPath");
var WinRARPath = mStor.GetAttrValue("WinRARPath");
if (WinRARPath == "")
{
if (System.IO.File.Exists(@"C:\Program Files\WinRAR\WinRAR.exe"))
{
WinRARPath = @"C:\Program Files\WinRAR\WinRAR.exe";
}
}
var bf_folder = GetBFFolderPath();
if (bf_folder != "")
{
ryCommon.Ini ini = new Ini(bf_folder + "\\查看项目.ryp");
var eng_name = ini.ReadIni("project", "engname");
var proglang = ini.ReadIni("project", "proglang");
var ouput_folder = bf_folder + "\\Bin\\" + com_mode + "\\" + eng_name;
var file_ver = "";
if (System.IO.File.Exists(ouput_folder + "\\" + eng_name + ".exe"))
{
FileVersionInfo fileVerInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(ouput_folder + "\\" + eng_name + ".exe");
file_ver = fileVerInfo.ProductVersion;
}
if (proglang == "c#")
{
ShowState("正在进行混淆...");
if (System.IO.File.Exists(bf_folder + "\\Bin\\混淆_" + com_mode + ".nrproj"))
{
var cmd = Read_Prog(ReactorPath, "-project \"" + bf_folder + "\\Bin\\混淆_" + com_mode + ".nrproj\"");
}
}
ShowState("正在清理不重要的缓存...");
ryCommon.RyFiles.DeleteFile(ouput_folder + "\\Secure\\*.pdb");
ShowState("复制混淆文件到底包目录...");
ryCommon.RyFiles.CopyFile(ouput_folder + "\\Secure\\*", bf_folder + "\\Publish\\OriginalFiles\\");
#region 复制自定义规则文件到底包目录
ShowState("复制自定义规则文件到底包目录...");
var Publish = ryCommon.RyFiles.ReadAllLines(bf_folder + "\\Publish\\Publish.set");
for (int m = 0; m < Publish.Length; m++)
{
var line = Publish[m].Trim();
if (line == "" || line.IndexOf("#") == 0) { continue; }
if (line.IndexOfEx("del:") == 0)
{
ryCommon.RyFiles.DeleteFile(bf_folder + "\\Publish\\OriginalFiles\\" + line.Substring(4));
}
else if (line.IndexOfEx("copy:") == 0)
{
var from_to = line.Substring(5).Replace("->", "|").Split('|');
if (from_to.Length == 2)
{
var from_path = from_to[0];
var to_path = from_to[1];
ryCommon.RyFiles.CopyFile(ouput_folder + "\\" + from_path, bf_folder + "\\Publish\\OriginalFiles\\" + to_path);
}
}
}
#endregion
ShowState("正在打包...");
var cmd2 = Read_Prog(WinRARPath, "-r -ep1 a \"" + bf_folder + "\\Publish\\Green\\" + eng_name + ".zip\" \"" + bf_folder + "\\Publish\\OriginalFiles\\\"");
RyFiles.CopyFile(bf_folder + "\\Publish\\Green\\" + eng_name + ".zip", bf_folder + "\\Publish\\Green\\HistoryVer\\" + eng_name + "_" + file_ver + ".zip");
ShowState("打包完成...");
}
}
}
db.Free();
void ShowState(string text)
{
this.Invoke(new Action(() =>
{
LblState.Text = "状态:" + text;
}));
}
this.Invoke(new Action(() =>
{
BtnBatchZip.Enabled = true;
}));
}
}
private void GetVersBySln(string path)
{
RyProject project = new RyProject();
string update_logs_text = "";
if (System.IO.File.Exists(path))
{
var sln_text = ryCommon.RyFiles.ReadAllLines(path);
for (int i = 0; i < sln_text.Length; i++)
{
if(sln_text[i].StartsWith("Project"))
{
var item = sln_text[i].Replace(" = ",",").Split(',');
if (item.Length>=3)
{
var project_name = item[1].Trim().Trim('"');
var project_path =System.IO.Path.GetDirectoryName(path).TrimEnd('\\')+"\\"+item[2].Trim().Trim('"');
var ver = project.GetAssemblyVersion(project_path);
if (ver != "")
{
if (update_logs_text != "") { update_logs_text += "\r\n"; }
update_logs_text +="#### "+ project_name + " V" + ver+ "\r\n暂无\r\n";
}
}
}
}
}
if (update_logs_text != "")
{
var _path = GetBFFolderPath();
if (_path != "")
{
var update_text = ryCommon.RyFiles.ReadAllText(_path + "\\CHANGELOG.md");
RyFiles.WriteAllText(_path+ "\\CHANGELOG.md", "### " + DateTime.Now.ToString("yyyy-MM-dd") + "更新\r\n------\r\n"+ update_logs_text + update_text, Encoding.UTF8);
RyFiles.OpenFile(_path + "\\CHANGELOG.md");
}
}
}
private void BtnInsertUpdate_Click(object sender, EventArgs e)
{
var _path = GetBFFolderPath();
if (_path != "")
{
var files = System.IO.Directory.GetFiles(_path+"\\Source");
for (int i = 0; i < files.Length; i++)
{
var ext = System.IO.Path.GetExtension(files[i]).ToLower();
if(ext==".sln")
{
GetVersBySln(files[i]);
return;
}
}
var dirs = System.IO.Directory.GetDirectories(_path + "\\Source");
for (int i = 0; i < dirs.Length; i++)
{
var files2 = System.IO.Directory.GetFiles(dirs[i]);
for (int m = 0; m < files2.Length; m++)
{
var ext = System.IO.Path.GetExtension(files2[m]).ToLower();
if (ext == ".sln")
{
GetVersBySln(files2[m]);
return;
}
}
}
var sln_path = _path + "\\CHANGELOG.md";
}
}
private void BtnUpdateDll_Click(object sender, EventArgs e)
{
BtnUpdateDll.Enabled = false;
int error = 0;
RyProject project = new RyProject
{
CopyDllToBin = true,
ChangedOutputPath = false
};
var bf_folder = GetBFFolderPath();
if(bf_folder!="")
{
error+= project.UpdateCSproj(bf_folder+"\\Source");
}
error +=project.UpdateDlls(bf_folder+"\\Bin",out string _error_str);
BtnUpdateDll.Enabled = true;
if (error == 0)
{
MessageBox.Show("更新dll完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("更新dll完成,共失败"+error+ "项。\r\n\r\n" + _error_str, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void FrmPathInfo_Load(object sender, EventArgs e)
{
}
private void BtnCreateFolder_Click(object sender, EventArgs e)
{
ryCommon.Ini ini= new Ini(TxtFolder.Text+ "\\查看项目.ryp");
FrmCreateProject frm = new FrmCreateProject();
frm.TxtFolder.Text = TxtFolder.Text;
frm.ChkUnCreateProject.Checked = true;
frm.TxtProjectEngName.Text = ini.ReadIni("project", "engname");
frm.TxtProjectName.Text = ini.ReadIni("project", "name");
frm.StartPosition = FormStartPosition.CenterParent;
frm.ShowDialog();
}
private void BtnUpdateDllVer_Click(object sender, EventArgs e)
{
BtnUpdateDllVer.Enabled = false;
int error = 0;
RyProject project = new RyProject
{
CopyDllToBin = true,
ChangedOutputPath = false
};
var bf_folder = GetBFFolderPath();
var _error_str = "";
if (bf_folder != "")
{
error += project.UpdateDlls(bf_folder + "\\Bin", out _error_str);
}
BtnUpdateDllVer.Enabled = true;
if (error == 0)
{
MessageBox.Show("更新dll完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("更新dll完成,共失败" + error + "项。\r\n\r\n"+ _error_str, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
@@ -0,0 +1,132 @@
<?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="columnModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tableModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>158, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 17</value>
</metadata>
</root>
+304
View File
@@ -0,0 +1,304 @@
namespace 开发辅助工具.Tools
{
partial class FrmProject
{
/// <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.BtnCustomMessageBox = new ryControls.ButtonEx();
this.BtnCopyCMD = new System.Windows.Forms.Button();
this.BtnOpenOutput = new System.Windows.Forms.Button();
this.BtnMessageBox = new ryControls.ButtonEx();
this.table1 = new XPTable.Models.Table();
this.columnModel1 = new XPTable.Models.ColumnModel();
this.ColName = new XPTable.Models.TextColumn();
this.ColPath = new XPTable.Models.TextColumn();
this.ColDes = new XPTable.Models.TextColumn();
this.tableModel1 = new XPTable.Models.TableModel();
this.BtnClean = new ryControls.ButtonEx();
this.BtnBatchZip = new ryControls.ButtonEx();
this.LblState = new System.Windows.Forms.Label();
this.BtnInsertUpdate = new ryControls.ButtonEx();
this.BtnUpdateDll = new ryControls.ButtonEx();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.BtnUpdateVer = new ryControls.ButtonEx();
this.BtnUpdateDllVer = new ryControls.ButtonEx();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// BtnCustomMessageBox
//
this.BtnCustomMessageBox.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnCustomMessageBox.Location = new System.Drawing.Point(111, 19);
this.BtnCustomMessageBox.Name = "BtnCustomMessageBox";
this.BtnCustomMessageBox.Size = new System.Drawing.Size(99, 34);
this.BtnCustomMessageBox.TabIndex = 12;
this.BtnCustomMessageBox.Text = "自定义对话框";
this.BtnCustomMessageBox.UseVisualStyleBackColor = true;
this.BtnCustomMessageBox.Click += new System.EventHandler(this.BtnCustomMessageBox_Click);
//
// BtnCopyCMD
//
this.BtnCopyCMD.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BtnCopyCMD.Location = new System.Drawing.Point(775, 12);
this.BtnCopyCMD.Name = "BtnCopyCMD";
this.BtnCopyCMD.Size = new System.Drawing.Size(142, 38);
this.BtnCopyCMD.TabIndex = 11;
this.BtnCopyCMD.Text = "设置自动更新版本号";
this.BtnCopyCMD.UseVisualStyleBackColor = true;
this.BtnCopyCMD.Click += new System.EventHandler(this.BtnCopyCMD_Click);
//
// BtnOpenOutput
//
this.BtnOpenOutput.Location = new System.Drawing.Point(12, 12);
this.BtnOpenOutput.Name = "BtnOpenOutput";
this.BtnOpenOutput.Size = new System.Drawing.Size(142, 38);
this.BtnOpenOutput.TabIndex = 9;
this.BtnOpenOutput.Text = "打开输出文件夹";
this.BtnOpenOutput.UseVisualStyleBackColor = true;
this.BtnOpenOutput.Click += new System.EventHandler(this.BtnOpenOutput_Click);
//
// BtnMessageBox
//
this.BtnMessageBox.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnMessageBox.Location = new System.Drawing.Point(6, 19);
this.BtnMessageBox.Name = "BtnMessageBox";
this.BtnMessageBox.Size = new System.Drawing.Size(99, 34);
this.BtnMessageBox.TabIndex = 8;
this.BtnMessageBox.Text = "对话框代码";
this.BtnMessageBox.UseVisualStyleBackColor = true;
this.BtnMessageBox.Click += new System.EventHandler(this.BtnMessageBox_Click);
//
// table1
//
this.table1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.table1.ColumnModel = this.columnModel1;
this.table1.EnableToolTips = true;
this.table1.FullRowSelect = true;
this.table1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.table1.Location = new System.Drawing.Point(12, 208);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(905, 296);
this.table1.TabIndex = 20;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
this.table1.DoubleClick += new System.EventHandler(this.table1_DoubleClick);
//
// columnModel1
//
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
this.ColName,
this.ColPath,
this.ColDes});
//
// ColName
//
this.ColName.Editable = false;
this.ColName.Tag = null;
this.ColName.Text = "名称";
this.ColName.Width = 150;
//
// ColPath
//
this.ColPath.Editable = false;
this.ColPath.Tag = null;
this.ColPath.Text = "路径";
this.ColPath.Width = 200;
//
// ColDes
//
this.ColDes.Editable = false;
this.ColDes.Tag = null;
this.ColDes.Text = "备注";
this.ColDes.Width = 400;
//
// BtnClean
//
this.BtnClean.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnClean.Location = new System.Drawing.Point(216, 20);
this.BtnClean.Name = "BtnClean";
this.BtnClean.Size = new System.Drawing.Size(99, 34);
this.BtnClean.TabIndex = 22;
this.BtnClean.Text = "清理垃圾";
this.toolTip1.SetToolTip(this.BtnClean, "清理debug目录下的pdb、dcu文件");
this.BtnClean.UseVisualStyleBackColor = true;
this.BtnClean.Click += new System.EventHandler(this.BtnClean_Click);
//
// BtnBatchZip
//
this.BtnBatchZip.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnBatchZip.Location = new System.Drawing.Point(531, 20);
this.BtnBatchZip.Name = "BtnBatchZip";
this.BtnBatchZip.Size = new System.Drawing.Size(99, 34);
this.BtnBatchZip.TabIndex = 23;
this.BtnBatchZip.Text = "一键打包";
this.toolTip1.SetToolTip(this.BtnBatchZip, "一键混淆并打包当前项目生成的文件。");
this.BtnBatchZip.UseVisualStyleBackColor = true;
this.BtnBatchZip.Click += new System.EventHandler(this.BtnBatchZip_Click);
//
// LblState
//
this.LblState.AutoSize = true;
this.LblState.Location = new System.Drawing.Point(10, 190);
this.LblState.Name = "LblState";
this.LblState.Size = new System.Drawing.Size(83, 12);
this.LblState.TabIndex = 24;
this.LblState.Text = "状态:准备就绪";
//
// BtnInsertUpdate
//
this.BtnInsertUpdate.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnInsertUpdate.Location = new System.Drawing.Point(321, 20);
this.BtnInsertUpdate.Name = "BtnInsertUpdate";
this.BtnInsertUpdate.Size = new System.Drawing.Size(99, 34);
this.BtnInsertUpdate.TabIndex = 25;
this.BtnInsertUpdate.Text = "插入更新日志";
this.toolTip1.SetToolTip(this.BtnInsertUpdate, "将当前版本加入更新日志");
this.BtnInsertUpdate.UseVisualStyleBackColor = true;
this.BtnInsertUpdate.Click += new System.EventHandler(this.BtnInsertUpdate_Click);
//
// BtnUpdateDll
//
this.BtnUpdateDll.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnUpdateDll.Location = new System.Drawing.Point(6, 20);
this.BtnUpdateDll.Name = "BtnUpdateDll";
this.BtnUpdateDll.Size = new System.Drawing.Size(99, 34);
this.BtnUpdateDll.TabIndex = 26;
this.BtnUpdateDll.Text = "更新引用dll";
this.toolTip1.SetToolTip(this.BtnUpdateDll, "将当前输出文件夹里的dll文件更新到最新版\r\n将当前项目文件里的引用dll位置修改至输出目录。");
this.BtnUpdateDll.UseVisualStyleBackColor = true;
this.BtnUpdateDll.Click += new System.EventHandler(this.BtnUpdateDll_Click);
//
// BtnUpdateVer
//
this.BtnUpdateVer.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnUpdateVer.Location = new System.Drawing.Point(426, 20);
this.BtnUpdateVer.Name = "BtnUpdateVer";
this.BtnUpdateVer.Size = new System.Drawing.Size(99, 34);
this.BtnUpdateVer.TabIndex = 27;
this.BtnUpdateVer.Text = "更新版本号";
this.toolTip1.SetToolTip(this.BtnUpdateVer, "每点一次自动更新一下版本号。");
this.BtnUpdateVer.UseVisualStyleBackColor = true;
this.BtnUpdateVer.Click += new System.EventHandler(this.BtnUpdateVer_Click);
//
// BtnUpdateDllVer
//
this.BtnUpdateDllVer.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnUpdateDllVer.Location = new System.Drawing.Point(111, 20);
this.BtnUpdateDllVer.Name = "BtnUpdateDllVer";
this.BtnUpdateDllVer.Size = new System.Drawing.Size(99, 34);
this.BtnUpdateDllVer.TabIndex = 29;
this.BtnUpdateDllVer.Text = "更新dll版本";
this.toolTip1.SetToolTip(this.BtnUpdateDllVer, "将当前输出文件夹里的dll文件更新到最新版");
this.BtnUpdateDllVer.UseVisualStyleBackColor = true;
this.BtnUpdateDllVer.Click += new System.EventHandler(this.BtnUpdateDllVer_Click);
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.BtnUpdateDllVer);
this.groupBox1.Controls.Add(this.BtnUpdateVer);
this.groupBox1.Controls.Add(this.BtnUpdateDll);
this.groupBox1.Controls.Add(this.BtnInsertUpdate);
this.groupBox1.Controls.Add(this.BtnBatchZip);
this.groupBox1.Controls.Add(this.BtnClean);
this.groupBox1.Location = new System.Drawing.Point(12, 120);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(905, 62);
this.groupBox1.TabIndex = 27;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "项目管理";
//
// groupBox2
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Controls.Add(this.BtnMessageBox);
this.groupBox2.Controls.Add(this.BtnCustomMessageBox);
this.groupBox2.Location = new System.Drawing.Point(12, 56);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(905, 60);
this.groupBox2.TabIndex = 28;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "快速代码";
//
// FrmProject
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(929, 516);
this.CloseButton = false;
this.CloseButtonVisible = false;
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.LblState);
this.Controls.Add(this.table1);
this.Controls.Add(this.BtnCopyCMD);
this.Controls.Add(this.BtnOpenOutput);
this.Name = "FrmProject";
this.Text = "项目";
this.Load += new System.EventHandler(this.FrmProject_Load);
((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private ryControls.ButtonEx BtnCustomMessageBox;
private System.Windows.Forms.Button BtnCopyCMD;
private System.Windows.Forms.Button BtnOpenOutput;
private ryControls.ButtonEx BtnMessageBox;
private XPTable.Models.Table table1;
private XPTable.Models.ColumnModel columnModel1;
private XPTable.Models.TextColumn ColName;
private XPTable.Models.TextColumn ColPath;
private XPTable.Models.TextColumn ColDes;
private XPTable.Models.TableModel tableModel1;
private ryControls.ButtonEx BtnClean;
private ryControls.ButtonEx BtnBatchZip;
private System.Windows.Forms.Label LblState;
private ryControls.ButtonEx BtnInsertUpdate;
private ryControls.ButtonEx BtnUpdateDll;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.GroupBox groupBox1;
private ryControls.ButtonEx BtnUpdateVer;
private System.Windows.Forms.GroupBox groupBox2;
private ryControls.ButtonEx BtnUpdateDllVer;
}
}
@@ -0,0 +1,592 @@
using Microsoft.Win32;
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Xml;
using WeifenLuo.WinFormsUI.Docking;
using 开发辅助工具.Manager;
namespace 开发辅助工具.Tools
{
public partial class FrmProject : DockContent
{
public FrmProject(string ProjectPath)
{
_ProjectPath = ProjectPath;
InitializeComponent();
try
{
if (_ProjectPath == "") { return; }
System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
xml.Load(_ProjectPath);
var xmlnsm = new XmlNamespaceManager(xml.NameTable);
xmlnsm.AddNamespace("d", xml.DocumentElement.NamespaceURI);
var root = @"d:Project//d:PropertyGroup//d:";
var project_name = GetValue("AssemblyName");
if (project_name != "") { Text = project_name; }
#region 读取图标
var ApplicationIcon = GetValue("ApplicationIcon");
ApplicationIcon = System.IO.Path.GetDirectoryName(_ProjectPath) + "\\" + ApplicationIcon;
if (System.IO.File.Exists(ApplicationIcon))
{
try
{
Icon = new Icon(ApplicationIcon);
}
catch
{
}
}
#endregion
LoadPath();
string GetValue(string name)
{
var node = xml.SelectSingleNode(root + name, xmlnsm);
if (node != null)
{
return node.InnerText;
}
return "";
}
}
catch { }
}
/// <summary>
/// 获取毕方标准项目根路径
/// </summary>
/// <returns></returns>
private string GetBFFolderPath()
{
var _path = _ProjectPath;
while (true)
{
_path = System.IO.Path.GetDirectoryName(_path.TrimEnd('\\')).TrimEnd('\\');
if (System.IO.File.Exists(_path + "\\查看项目.ryp"))
{
return _path;
}
else
{
if (_path.Length < 4) { break; }
}
}
return "";
}
private void LoadPath()
{
var _path = GetBFFolderPath();
if (_path!="")
{
var folder = _path;
AddPath(true,"Debug输出目录", "Bin\\Debug","包含调试信息的输出目录");
AddPath(true, "Release输出目录", "Bin\\Release", "不包含调试信息的输出目录");
AddPath(true,"源代码目录", "Source", "含有项目源码");
AddPath(true, "安装包目录", "Publish", "对外发布的安装文件");
AddPath(false, " - 免安装输出包目录", "Publish\\Green", "绿色免安装版本目录,通常为zip压缩包");
AddPath(false, " - 安装输出包目录", "Publish\\Install", "需要安装的版本目录,通常为exe压缩包");
AddPath(false, " - 输出底包目录", "Publish\\OriginalFiles", "输出底包,保留完整的文件结构,绿色版、安装包都以此来制作");
AddPath(false, " - 升级输出包目录", "Publish\\UpdateFile", "升级包目录,通常为zip压缩包,非完整输出包");
AddPath(true, "帮助文件目录", "Help", "帮助文档");
AddPath(true, "外部资源目录", "Res", "项目用到的资源备份,例外图标、图片、第三方项目");
AddPath(false, " - 第三方组件项目", "Res\\ThirdParty", "包含第三方组件的项目");
AddPath(false, " - 图片文件夹", "Res\\Images", "含下载的项目图片");
AddPath(true, "更新日志", "更新日志.txt", "当前项目更新日志文件");
AddPath(true, "更新日志", "更新日志.md", "当前项目更新日志文件");
AddPath(true, "更新日志", "CHANGELOG.md", "当前项目更新日志文件");
AddPath(true, "自述文件", "README.md", "当前项目自述文件");
void AddPath(bool bold,string name,string path,string des)
{
if (System.IO.File.Exists(folder + "\\" + path) || System.IO.Directory.Exists(folder + "\\" + path))
{
XPTable.Models.Row itemList = new XPTable.Models.Row
{
Tag = folder + "\\" + path
};
var cell_name = new XPTable.Models.Cell(name);
if(bold)
cell_name.ForeColor=Color.Blue;
else
{ cell_name.ForeColor = Color.Tomato; }
itemList.Cells.Add(cell_name);
itemList.Cells.Add(new XPTable.Models.Cell(path));
var cell = new XPTable.Models.Cell(des);
cell.ForeColor = Color.Gray;
itemList.Cells.Add(cell);
table1.TableModel.Rows.Add(itemList);
}
}
}
}
string _ProjectPath = "";
private string GetPath(string _path)
{
string tmp_path = _path;
if (_path.IndexOf("..") == 0)
{
tmp_path = System.IO.Path.GetDirectoryName(System.IO.Path.GetDirectoryName(_ProjectPath).Trim('\\'));
tmp_path = tmp_path + "\\" + _path.Substring(2);
}
else if (_path.IndexOf(".") == 0)
{
tmp_path = System.IO.Path.GetDirectoryName(_ProjectPath);
tmp_path = tmp_path + "\\" + _path.Substring(1);
}
else if (_path.IndexOf(":") < 0)
{
tmp_path = System.IO.Path.GetDirectoryName(_ProjectPath);
tmp_path = tmp_path + "\\" + _path;
}
return tmp_path.Replace("\\\\", "\\");
}
private string GetDebugPath()
{
if (_ProjectPath == "") { return ""; }
System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
xml.Load(_ProjectPath);
var xmlnsm = new XmlNamespaceManager(xml.NameTable);
xmlnsm.AddNamespace("d", xml.DocumentElement.NamespaceURI);
var node = xml.SelectSingleNode(@"d:Project//d:PropertyGroup//d:OutputPath", xmlnsm);
if (node != null)
{
string path = node.InnerText;
path = GetPath(path);
return path;
}
return "";
}
private void BtnCopyCMD_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.CopyToClip("\"" + Application.ExecutablePath + "\" ver \"$(ProjectDir)\"");
if (_ProjectPath == "") { MessageBox.Show("当前项目无效,无法设置", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
xml.Load(_ProjectPath);
var xmlnsm = new XmlNamespaceManager(xml.NameTable);
xmlnsm.AddNamespace("d", xml.DocumentElement.NamespaceURI);
var node = xml.SelectSingleNode(@"d:Project//d:PropertyGroup//d:PreBuildEvent", xmlnsm);
if (node != null)
{
if (node.InnerText == "")
{
node.InnerText = "\"" + Application.ExecutablePath + "\" ver \"$(ProjectDir)\"";
xml.Save(_ProjectPath);
}
else
{
MessageBox.Show("当前项目已经存在生成动作,为防止误删,请手工操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
else
{
XmlElement ww = xml.CreateElement("PropertyGroup", xml.DocumentElement.NamespaceURI);
XmlElement ww2 = xml.CreateElement("PreBuildEvent", xml.DocumentElement.NamespaceURI);
//ww.("xmlns");
ww2.InnerText = "\"" + Application.ExecutablePath + "\" ver \"$(ProjectDir)\"";
xml.DocumentElement.AppendChild(ww);
ww.AppendChild(ww2);
xml.Save(_ProjectPath);
}
MessageBox.Show("写入成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void CloseApp()
{
Itrycn_Db.IsCloseConfirm = false;
this.DockPanel.FindForm().Close();
}
private void BtnOpenOutput_Click(object sender, EventArgs e)
{
var debug_path = GetDebugPath();
if (System.IO.Directory.Exists(debug_path))
{
ryCommon.RyFiles.OpenFile(debug_path);
CloseApp();
}
else
{
MessageBox.Show("打开输出目录失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
/// <summary>
/// 获取Notepad++路径
/// </summary>
/// <returns></returns>
private string GetNotepadPlusPath()
{
var path = "";
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Notepad++", true);
if (softwareRun.GetValue("") != null)
{
string notepad_plus_path = softwareRun.GetValue("").ToString() + "\\notepad++.exe";
if (System.IO.File.Exists(notepad_plus_path))
{
path = notepad_plus_path;
}
}
softwareRun.Close();
LMach.Close();
}
catch
{
}
return path;
}
private void BtnMessageBox_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.CopyToClip("MessageBox.Show(\"这是一个测试\",\"提示\",MessageBoxButtons.OK,MessageBoxIcon.Information);");
CloseApp();
}
private void BtnCustomMessageBox_Click(object sender, EventArgs e)
{
FrmMessageBox frm = new FrmMessageBox
{
Icon = Icon
};
if (frm.ShowDialog() == DialogResult.OK)
{
CloseApp();
}
}
private void FrmProject_Load(object sender, EventArgs e)
{
}
private void table1_DoubleClick(object sender, EventArgs e)
{
if (table1.SelectedItems.Length == 0) { return; }
var path = table1.SelectedItems[0].Tag.ToString();
if (System.IO.Directory.Exists(path))
{
ryCommon.RyFiles.OpenFile(path);
}
else if (System.IO.File.Exists(path))
{
if (System.IO.Path.GetExtension(path).ToLower() == ".txt")
{
string notepad_plus_path = GetNotepadPlusPath();
if (System.IO.File.Exists(notepad_plus_path))
{
ryCommon.RyFiles.RunFile(notepad_plus_path, "\"" + path + "\"");
}
else
{
ryCommon.RyFiles.OpenFile(path);
}
}
else if (System.IO.Path.GetExtension(path).ToLower() == ".md")
{
ryCommon.RyFiles.OpenFile(path);
}
else
{
ryCommon.RyFiles.OpenFolderGotoFile(path);
}
}
}
private void BtnClean_Click(object sender, EventArgs e)
{
switch (MessageBox.Show("是否要进行清理不必要的文件,例如*.pdb", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{
case DialogResult.No:
return;
}
var debug_path = GetDebugPath();
if (System.IO.Directory.Exists(debug_path))
{
Itrycn_Db.DeleteFiles(debug_path, "*.pdb");
Itrycn_Db.DeleteFiles(debug_path, "*.dcu");
}
var folder = GetBFFolderPath();
if(folder!="")
{
if(System.IO.Directory.Exists(folder + "\\Bin\\Release"))
{
Itrycn_Db.DeleteFiles(folder + "\\Bin\\Release", "*.pdb");
Itrycn_Db.DeleteFiles(folder + "\\Bin\\Release", "*.dcu");
}
}
MessageBox.Show("清理完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// 等待进程执行完毕
/// </summary>
/// <param name="cmd_text"></param>
/// <returns></returns>
public static string Read_Prog(string exe,string cmd_text)
{
String cmd = exe;
Process p = new Process
{
StartInfo = new System.Diagnostics.ProcessStartInfo
{
FileName = cmd,//设定程序名
Arguments = cmd_text,
UseShellExecute = false, //关闭shell的使用
RedirectStandardInput = true, //重定向标准输入
RedirectStandardOutput = true, //重定向标准输出
RedirectStandardError = false, //重定向错误输出
CreateNoWindow = true//设置不显示窗口
}
};
p.Start();
string result = p.StandardOutput.ReadToEnd();
p.WaitForExit(20000);
p.Close();
return result;
}
private void BtnBatchZip_Click(object sender, EventArgs e)
{
BtnBatchZip.Enabled = false;
Thread th = new Thread(Start);
th.Start();
void Start()
{
var com_mode = "Debug";
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
var ds = db.ReadData("select * from Settings where name='Setting'");
if (mydb.HaveData(ds))
{
var row = mydb.GetData(ds);
ryCommon.Storage mStor = new ryCommon.Storage(row["value"].ToString());
mStor.SelectNodeBySet();
var ReactorPath = mStor.GetAttrValue("ReactorPath");
var WinRARPath = mStor.GetAttrValue("WinRARPath");
if (WinRARPath == "")
{
if (System.IO.File.Exists(@"C:\Program Files\WinRAR\WinRAR.exe"))
{
WinRARPath = @"C:\Program Files\WinRAR\WinRAR.exe";
}
}
var bf_folder = GetBFFolderPath();
if (bf_folder != "")
{
ryCommon.Ini ini = new Ini(bf_folder+ "\\查看项目.ryp");
var eng_name = ini.ReadIni("project", "engname");
var proglang= ini.ReadIni("project", "proglang");
var ouput_folder = bf_folder + "\\Bin\\" + com_mode + "\\" + eng_name;
var file_ver = "";
if (System.IO.File.Exists(ouput_folder + "\\" + eng_name + ".exe"))
{
FileVersionInfo fileVerInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(ouput_folder + "\\" + eng_name + ".exe");
file_ver = fileVerInfo.ProductVersion;
}
if (proglang == "c#")
{
ShowState("正在进行混淆...");
if (System.IO.File.Exists(bf_folder + "\\Bin\\混淆_" + com_mode + ".nrproj"))
{
var cmd = Read_Prog(ReactorPath, "-project \"" + bf_folder + "\\Bin\\混淆_" + com_mode + ".nrproj\"");
MessageBox.Show(cmd, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
ShowState("正在清理不重要的缓存...");
ryCommon.RyFiles.DeleteFile(ouput_folder + "\\Secure\\*.pdb");
ShowState("复制混淆文件到底包目录...");
ryCommon.RyFiles.CopyFile(ouput_folder + "\\Secure\\*", bf_folder + "\\Publish\\OriginalFiles\\");
#region 复制自定义规则文件到底包目录
ShowState("复制自定义规则文件到底包目录...");
var Publish = ryCommon.RyFiles.ReadAllLines(bf_folder + "\\Publish\\Publish.set");
for (int m = 0; m < Publish.Length; m++)
{
var line = Publish[m].Trim();
if (line == "" || line.IndexOf("#") == 0) { continue; }
if (line.IndexOfEx("del:") == 0)
{
ryCommon.RyFiles.DeleteFile(bf_folder + "\\Publish\\OriginalFiles\\" + line.Substring(4));
}
else if (line.IndexOfEx("copy:") == 0)
{
var from_to = line.Substring(5).Replace("->", "|").Split('|');
if (from_to.Length == 2)
{
var from_path = from_to[0];
var to_path = from_to[1];
ryCommon.RyFiles.CopyFile(ouput_folder + "\\"+ from_path, bf_folder + "\\Publish\\OriginalFiles\\" + to_path);
}
}
}
#endregion
ShowState("正在打包...");
var cmd2 = Read_Prog(WinRARPath, "-r -ep1 a \""+ bf_folder + "\\Publish\\Green\\"+ eng_name + ".zip\" \""+ bf_folder + "\\Publish\\OriginalFiles\\\"");
RyFiles.CopyFile(bf_folder + "\\Publish\\Green\\" + eng_name + ".zip", bf_folder + "\\Publish\\Green\\HistoryVer\\" + eng_name + "_"+file_ver+".zip");
ShowState("打包完成...");
}
}
}
db.Free();
void ShowState(string text)
{
this.Invoke(new Action(() =>
{
LblState.Text = "状态:" + text;
}));
}
this.Invoke(new Action(() =>
{
BtnBatchZip.Enabled = true;
}));
}
}
private void GetVersBySln(string path)
{
var _bf_path = GetBFFolderPath();
RyProject project = new RyProject();
string update_logs_text = "";
if (System.IO.File.Exists(path))
{
ryCommon.Ini ini = new Ini(_bf_path + "\\查看项目.ryp");
var sln_text = ryCommon.RyFiles.ReadAllLines(path);
for (int i = 0; i < sln_text.Length; i++)
{
if(sln_text[i].StartsWith("Project"))
{
var item = sln_text[i].Replace(" = ",",").Split(',');
if (item.Length>=3)
{
var project_name = item[1].Trim().Trim('"');
var project_path =System.IO.Path.GetDirectoryName(path).TrimEnd('\\')+"\\"+item[2].Trim().Trim('"');
var ver = project.GetAssemblyVersion(project_path);
if (ver != "")
{
if(ini.ReadIni("NoVerMD", project_name,0) == 1) { continue; }
if (update_logs_text != "") { update_logs_text += "\r\n"; }
update_logs_text +="#### "+ project_name + " V" + ver+ "\r\n暂无\r\n";
}
}
}
}
}
if (update_logs_text != "")
{
if (_bf_path != "")
{
var update_text = ryCommon.RyFiles.ReadAllText(_bf_path + "\\CHANGELOG.md");
RyFiles.WriteAllText(_bf_path+ "\\CHANGELOG.md", "### " + DateTime.Now.ToString("yyyy-MM-dd") + "更新\r\n------\r\n"+ update_logs_text + update_text, Encoding.UTF8);
RyFiles.OpenFile(_bf_path + "\\CHANGELOG.md");
}
}
}
private void BtnInsertUpdate_Click(object sender, EventArgs e)
{
var _path = GetBFFolderPath();
if (_path != "")
{
var files = System.IO.Directory.GetFiles(_path+"\\Source");
for (int i = 0; i < files.Length; i++)
{
var ext = System.IO.Path.GetExtension(files[i]).ToLower();
if(ext==".sln")
{
GetVersBySln(files[i]);
return;
}
}
var dirs = System.IO.Directory.GetDirectories(_path + "\\Source");
for (int i = 0; i < dirs.Length; i++)
{
var files2 = System.IO.Directory.GetFiles(dirs[i]);
for (int m = 0; m < files2.Length; m++)
{
var ext = System.IO.Path.GetExtension(files2[m]).ToLower();
if (ext == ".sln")
{
GetVersBySln(files2[m]);
return;
}
}
}
//var sln_path = _path + "\\更新日志.md";
}
}
private void BtnUpdateDll_Click(object sender, EventArgs e)
{
BtnUpdateDll.Enabled = false;
var debug_path = GetDebugPath();
int error = 0;
var _error_str = "";
if (System.IO.Directory.Exists(debug_path))
{
RyProject project = new RyProject
{
CopyDllToBin = true,
ChangedOutputPath = false
};
var bf_folder = GetBFFolderPath();
if(bf_folder!="")
{
error+= project.UpdateCSproj(bf_folder+"\\Source");
}
else
{
project.SetCSproj(_ProjectPath, "");
}
error +=project.UpdateDlls(debug_path,out _error_str);
}
BtnUpdateDll.Enabled = true;
if (error == 0)
{
MessageBox.Show("更新dll完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("更新dll完成,共失败"+error+"项。\r\n\r\n"+ _error_str, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void BtnUpdateVer_Click(object sender, EventArgs e)
{
var folder = System.IO.Path.GetDirectoryName(_ProjectPath);
Manager.RyProject.UpdateVer(folder + "\\Properties\\AssemblyInfo.cs");
CloseApp();
}
private void BtnUpdateDllVer_Click(object sender, EventArgs e)
{
BtnUpdateDllVer.Enabled = false;
int error = 0;
RyProject project = new RyProject
{
CopyDllToBin = true,
ChangedOutputPath = false
};
var bf_folder = GetBFFolderPath();
var _error_str = "";
if (bf_folder != "")
{
error += project.UpdateDlls(bf_folder + "\\Bin",out _error_str);
}
BtnUpdateDllVer.Enabled = true;
if (error == 0)
{
MessageBox.Show("更新dll完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("更新dll完成,共失败" + error + "项。\r\n\r\n"+ _error_str, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
@@ -0,0 +1,129 @@
<?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="columnModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tableModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>158, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 17</value>
</metadata>
</root>
@@ -0,0 +1,153 @@
namespace 开发辅助工具.Tools
{
partial class FrmProjectSearch
{
/// <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.BtnBrowser = new ryControls.ButtonEx();
this.label1 = new System.Windows.Forms.Label();
this.TxtFolder = new ryControls.TextBoxEx2();
this.LblState = new System.Windows.Forms.Label();
this.ChkDealWithVer = new System.Windows.Forms.CheckBox();
this.CbbAutoVer = new ryControls.RyComboBox();
this.BtnScan = new ryControls.ButtonEx();
this.SuspendLayout();
//
// BtnBrowser
//
this.BtnBrowser.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnBrowser.Location = new System.Drawing.Point(593, 25);
this.BtnBrowser.Name = "BtnBrowser";
this.BtnBrowser.Size = new System.Drawing.Size(75, 33);
this.BtnBrowser.TabIndex = 5;
this.BtnBrowser.Text = "选择";
this.BtnBrowser.UseVisualStyleBackColor = true;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 10);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 12);
this.label1.TabIndex = 4;
this.label1.Text = "选择文件夹";
//
// TxtFolder
//
this.TxtFolder.BackColor = System.Drawing.Color.White;
this.TxtFolder.EmptyText = "";
this.TxtFolder.Location = new System.Drawing.Point(12, 25);
this.TxtFolder.MaxLength = 999999999;
this.TxtFolder.Multiline = false;
this.TxtFolder.Name = "TxtFolder";
this.TxtFolder.OnlyNumeric = false;
this.TxtFolder.PasswordChar = '\0';
this.TxtFolder.ReadOnly = false;
this.TxtFolder.SelectedText = "";
this.TxtFolder.SelectionLength = 0;
this.TxtFolder.SelectionStart = 0;
this.TxtFolder.Size = new System.Drawing.Size(575, 33);
this.TxtFolder.TabIndex = 3;
this.TxtFolder.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtFolder.ToolTip = "";
this.TxtFolder.WordWrap = true;
//
// LblState
//
this.LblState.AutoSize = true;
this.LblState.Location = new System.Drawing.Point(12, 139);
this.LblState.Name = "LblState";
this.LblState.Size = new System.Drawing.Size(83, 12);
this.LblState.TabIndex = 25;
this.LblState.Text = "状态:准备就绪";
//
// ChkDealWithVer
//
this.ChkDealWithVer.AutoSize = true;
this.ChkDealWithVer.Location = new System.Drawing.Point(12, 67);
this.ChkDealWithVer.Name = "ChkDealWithVer";
this.ChkDealWithVer.Size = new System.Drawing.Size(96, 16);
this.ChkDealWithVer.TabIndex = 26;
this.ChkDealWithVer.Text = "处理版本信息";
this.ChkDealWithVer.UseVisualStyleBackColor = true;
//
// CbbAutoVer
//
this.CbbAutoVer.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbAutoVer.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbAutoVer.FormattingEnabled = true;
this.CbbAutoVer.Items.AddRange(new object[] {
"不自动更新版本号",
"自动更新版本号"});
this.CbbAutoVer.Location = new System.Drawing.Point(114, 64);
this.CbbAutoVer.Name = "CbbAutoVer";
this.CbbAutoVer.Size = new System.Drawing.Size(136, 22);
this.CbbAutoVer.TabIndex = 27;
//
// BtnScan
//
this.BtnScan.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnScan.Location = new System.Drawing.Point(674, 25);
this.BtnScan.Name = "BtnScan";
this.BtnScan.Size = new System.Drawing.Size(75, 33);
this.BtnScan.TabIndex = 28;
this.BtnScan.Text = "扫描";
this.BtnScan.UseVisualStyleBackColor = true;
this.BtnScan.Click += new System.EventHandler(this.BtnScan_Click);
//
// FrmProjectSearch
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(771, 438);
this.Controls.Add(this.BtnScan);
this.Controls.Add(this.CbbAutoVer);
this.Controls.Add(this.ChkDealWithVer);
this.Controls.Add(this.LblState);
this.Controls.Add(this.BtnBrowser);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtFolder);
this.Name = "FrmProjectSearch";
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "项目自动更新设置";
this.Load += new System.EventHandler(this.FrmProjectSearch_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private ryControls.ButtonEx BtnBrowser;
private System.Windows.Forms.Label label1;
private ryControls.TextBoxEx2 TxtFolder;
private System.Windows.Forms.Label LblState;
private System.Windows.Forms.CheckBox ChkDealWithVer;
private ryControls.RyComboBox CbbAutoVer;
private ryControls.ButtonEx BtnScan;
}
}
@@ -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.Windows.Forms;
namespace 开发辅助工具.Tools
{
public partial class FrmProjectSearch : Form
{
public FrmProjectSearch()
{
InitializeComponent();
CbbAutoVer.SelectedIndex = 0;
}
private void FrmProjectSearch_Load(object sender, EventArgs e)
{
ryCommon.RyFiles.AddDropDrag(TxtFolder.Handle).ElevatedDragDrop += FrmCreateProject_ElevatedDragDrop;
}
private void FrmCreateProject_ElevatedDragDrop(object sender, ElevatedDragDropArgs e)
{
TxtFolder.Text = e.Files[0];
}
/// <summary>
/// 是否处理版本信息
/// </summary>
bool DealWithVer_ON = false;
/// <summary>
/// 处理版本信息的方式
/// </summary>
int AutoVer = 0;
private void AutoScan(string folder)
{
Manager.RyProject project = new Manager.RyProject();
project.ChangedOutputPath = false;
project.CopyDllToBin = false;
project.UpdateCSproj(folder);
this.Invoke(new Action(() =>
{
MessageBox.Show("更新完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}));
}
private void BtnScan_Click(object sender, EventArgs e)
{
DealWithVer_ON = ChkDealWithVer.Checked;
AutoVer = CbbAutoVer.SelectedIndex = 0;
}
}
}
@@ -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>
+279
View File
@@ -0,0 +1,279 @@
namespace 开发辅助工具.Tools
{
partial class FrmQrCode
{
/// <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(FrmQrCode));
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.BtnCreate = new ryControls.ButtonEx();
this.TxtFromStr = new ryControls.TextBoxEx2();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.BtnCapture = new ryControls.ButtonEx();
this.BtnAnaly = new ryControls.ButtonEx();
this.TxtToResult = new ryControls.TextBoxEx2();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.BtnBrowser = new ryControls.ButtonEx();
this.TxtQrCodePath = new ryControls.TextBoxEx2();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();
//
// tabControl1
//
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(3, 1);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(906, 502);
this.tabControl1.TabIndex = 0;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.pictureBox1);
this.tabPage1.Controls.Add(this.BtnCreate);
this.tabPage1.Controls.Add(this.TxtFromStr);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(898, 476);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "二维码生成";
this.tabPage1.UseVisualStyleBackColor = true;
//
// pictureBox1
//
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox1.Location = new System.Drawing.Point(7, 158);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(882, 312);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 2;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.PictureBox1_Click);
//
// BtnCreate
//
this.BtnCreate.ForeColor = System.Drawing.Color.White;
this.BtnCreate.Location = new System.Drawing.Point(7, 6);
this.BtnCreate.Name = "BtnCreate";
this.BtnCreate.Size = new System.Drawing.Size(67, 23);
this.BtnCreate.TabIndex = 1;
this.BtnCreate.Text = "生成";
this.BtnCreate.UseVisualStyleBackColor = true;
this.BtnCreate.Click += new System.EventHandler(this.BtnCreate_Click);
//
// TxtFromStr
//
this.TxtFromStr.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtFromStr.BackColor = System.Drawing.Color.White;
this.TxtFromStr.EmptyText = "";
this.TxtFromStr.Location = new System.Drawing.Point(7, 35);
this.TxtFromStr.MaxLength = 999999999;
this.TxtFromStr.Multiline = true;
this.TxtFromStr.Name = "TxtFromStr";
this.TxtFromStr.OnlyNumeric = false;
this.TxtFromStr.PasswordChar = '\0';
this.TxtFromStr.ReadOnly = false;
this.TxtFromStr.SelectedText = "";
this.TxtFromStr.SelectionLength = 0;
this.TxtFromStr.SelectionStart = 0;
this.TxtFromStr.Size = new System.Drawing.Size(882, 117);
this.TxtFromStr.TabIndex = 0;
this.TxtFromStr.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtFromStr.ToolTip = "";
this.TxtFromStr.DoubleClick += new System.EventHandler(this.TxtFromStr_DoubleClick);
//
// tabPage2
//
this.tabPage2.Controls.Add(this.BtnCapture);
this.tabPage2.Controls.Add(this.BtnAnaly);
this.tabPage2.Controls.Add(this.TxtToResult);
this.tabPage2.Controls.Add(this.pictureBox2);
this.tabPage2.Controls.Add(this.BtnBrowser);
this.tabPage2.Controls.Add(this.TxtQrCodePath);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(898, 476);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "二维码解析";
this.tabPage2.UseVisualStyleBackColor = true;
//
// BtnCapture
//
this.BtnCapture.ForeColor = System.Drawing.Color.White;
this.BtnCapture.Location = new System.Drawing.Point(622, 6);
this.BtnCapture.Name = "BtnCapture";
this.BtnCapture.Size = new System.Drawing.Size(71, 30);
this.BtnCapture.TabIndex = 6;
this.BtnCapture.Text = "截图";
this.BtnCapture.UseVisualStyleBackColor = true;
this.BtnCapture.Click += new System.EventHandler(this.BtnCapture_Click);
//
// BtnAnaly
//
this.BtnAnaly.ForeColor = System.Drawing.Color.White;
this.BtnAnaly.Location = new System.Drawing.Point(699, 6);
this.BtnAnaly.Name = "BtnAnaly";
this.BtnAnaly.Size = new System.Drawing.Size(71, 30);
this.BtnAnaly.TabIndex = 5;
this.BtnAnaly.Text = "解析";
this.BtnAnaly.UseVisualStyleBackColor = true;
this.BtnAnaly.Click += new System.EventHandler(this.BtnAnaly_Click);
//
// TxtToResult
//
this.TxtToResult.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtToResult.BackColor = System.Drawing.Color.White;
this.TxtToResult.EmptyText = "解析出来的内容";
this.TxtToResult.Location = new System.Drawing.Point(6, 42);
this.TxtToResult.MaxLength = 999999999;
this.TxtToResult.Multiline = true;
this.TxtToResult.Name = "TxtToResult";
this.TxtToResult.OnlyNumeric = false;
this.TxtToResult.PasswordChar = '\0';
this.TxtToResult.ReadOnly = false;
this.TxtToResult.SelectedText = "";
this.TxtToResult.SelectionLength = 0;
this.TxtToResult.SelectionStart = 0;
this.TxtToResult.Size = new System.Drawing.Size(882, 117);
this.TxtToResult.TabIndex = 4;
this.TxtToResult.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtToResult.ToolTip = "";
//
// pictureBox2
//
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox2.Location = new System.Drawing.Point(8, 165);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(882, 305);
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox2.TabIndex = 3;
this.pictureBox2.TabStop = false;
//
// BtnBrowser
//
this.BtnBrowser.ForeColor = System.Drawing.Color.White;
this.BtnBrowser.Location = new System.Drawing.Point(541, 6);
this.BtnBrowser.Name = "BtnBrowser";
this.BtnBrowser.Size = new System.Drawing.Size(75, 30);
this.BtnBrowser.TabIndex = 1;
this.BtnBrowser.Text = "浏览";
this.BtnBrowser.UseVisualStyleBackColor = true;
this.BtnBrowser.Click += new System.EventHandler(this.BtnBrowser_Click);
//
// TxtQrCodePath
//
this.TxtQrCodePath.BackColor = System.Drawing.Color.White;
this.TxtQrCodePath.EmptyText = "二维码图片路径";
this.TxtQrCodePath.Location = new System.Drawing.Point(6, 6);
this.TxtQrCodePath.MaxLength = 999999999;
this.TxtQrCodePath.Multiline = false;
this.TxtQrCodePath.Name = "TxtQrCodePath";
this.TxtQrCodePath.OnlyNumeric = false;
this.TxtQrCodePath.PasswordChar = '\0';
this.TxtQrCodePath.ReadOnly = false;
this.TxtQrCodePath.SelectedText = "";
this.TxtQrCodePath.SelectionLength = 0;
this.TxtQrCodePath.SelectionStart = 0;
this.TxtQrCodePath.Size = new System.Drawing.Size(529, 30);
this.TxtQrCodePath.TabIndex = 0;
this.TxtQrCodePath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtQrCodePath.ToolTip = "";
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// openFileDialog1
//
this.openFileDialog1.Filter = "图片文件|*.jpg;*.bmp;*.png;*.jpeg;";
//
// saveFileDialog1
//
this.saveFileDialog1.Filter = "图片文件|*.jpg;*.bmp;*.png;*.jpeg;|BMP图片|*.bmp|JPG图片|*.jpg;*.jpeg|PNG图片|*.png";
//
// FrmQrCode
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(907, 509);
this.Controls.Add(this.tabControl1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmQrCode";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "二维码生成和读取";
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.tabPage2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private ryControls.ButtonEx BtnCreate;
private ryControls.TextBoxEx2 TxtFromStr;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.PictureBox pictureBox1;
private ryPaiban.Model.MenuRight menuRight1;
private ryControls.ButtonEx BtnAnaly;
private ryControls.TextBoxEx2 TxtToResult;
private System.Windows.Forms.PictureBox pictureBox2;
private ryControls.ButtonEx BtnBrowser;
private ryControls.TextBoxEx2 TxtQrCodePath;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private ryControls.ButtonEx BtnCapture;
private System.Windows.Forms.SaveFileDialog saveFileDialog1;
}
}
@@ -0,0 +1,164 @@
using _SCREEN_CAPTURE;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using ZXing;
namespace 开发辅助工具.Tools
{
public partial class FrmQrCode : DockContent
{
public FrmQrCode()
{
InitializeComponent();
}
/// <summary>
/// 生成二维码图片
/// </summary>
/// <param name="strMessage">要生成二维码的字符串</param>
/// <param name="width">二维码图片宽度</param>
/// <param name="height">二维码图片高度</param>
/// <returns></returns>
private Bitmap CreateQrCode(String strMessage, Int32 width, Int32 height)
{
Bitmap result = null;
try
{
BarcodeWriter barCodeWriter = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE
};
barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
barCodeWriter.Options.Height = height;
barCodeWriter.Options.Width = width;
barCodeWriter.Options.Margin = 0;
ZXing.Common.BitMatrix bm = barCodeWriter.Encode(strMessage);
result = barCodeWriter.Write(bm);
Bitmap qr_bg = (Bitmap)ryCommon.RyFiles.LoadPicFromFile(Application.StartupPath + "\\mod\\qr_bg.jpg");
Graphics g = Graphics.FromImage(qr_bg);
g.DrawImage(result, new Rectangle(25, 25, qr_bg.Width - 50, qr_bg.Height - 50));
result = qr_bg;
}
catch (Exception)
{
//异常输出
}
return result;
}
private void BtnCreate_Click(object sender, EventArgs e)
{
pictureBox1.Image= CreateQrCode(TxtFromStr.Text, 256, 256);
}
private void BtnBrowser_Click(object sender, EventArgs e)
{
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
TxtQrCodePath.Text = openFileDialog1.FileName;
BtnAnaly.PerformClick();
}
}
private void BtnAnaly_Click(object sender, EventArgs e)
{
string path = TxtQrCodePath.Text;
if (!System.IO.File.Exists(path)) { Init(); return; }
var img = ryCommon.RyFiles.LoadPicFromFile(path);
if (img == null) { Init(); return; }
Bitmap bmap;
try
{
bmap = new Bitmap(img);
}
catch (System.IO.IOException ioe)
{
MessageBox.Show(ioe.ToString(),"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (bmap == null)
{
MessageBox.Show("不能解码图片","提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
try
{
BarcodeReader reader = new BarcodeReader();
reader.Options.CharacterSet = "UTF-8";
var result = reader.Decode(bmap);
TxtToResult.Text = (result == null) ? "" : result.Text;
pictureBox2.Image = img;
}
catch (Exception)
{
Init();
MessageBox.Show("解析二维码失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
void Init()
{
pictureBox2.Image = null; TxtToResult.Text = "";
}
}
private void PictureBox1_Click(object sender, EventArgs e)
{
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
{
try
{
pictureBox1.Image.Save(saveFileDialog1.FileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
private void BtnCapture_Click(object sender, EventArgs e)
{
ScreenCapture capture = new _SCREEN_CAPTURE.ScreenCapture();
Bitmap m = capture.StartCapture(false);
if (m != null)
{
try
{
BarcodeReader reader = new BarcodeReader();
reader.Options.CharacterSet = "UTF-8";
var result = reader.Decode(m);
TxtToResult.Text = (result == null) ? "" : result.Text;
pictureBox2.Image = m;
}
catch (Exception)
{
Init();
MessageBox.Show("解析二维码失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
void Init()
{
pictureBox2.Image = null; TxtToResult.Text = "";
}
}
}
private void TxtFromStr_DoubleClick(object sender, EventArgs e)
{
ryControls.TextBoxEx2 txt = (ryControls.TextBoxEx2)sender;
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
{
Icon = Icon
};
frm.richTextBox1.Text = txt.Text;
if (frm.ShowDialog() == DialogResult.OK)
{
txt.Text = frm.richTextBox1.Text;
}
}
}
}
@@ -0,0 +1,206 @@
<?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="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAGEPAABhDwAAAAAAAAAA
AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOUAAAAkAAAAAAAA
AAAAAAAbAAAA4gAAAOsAAAAkAAAAGwAAAOIAAADqAAAAIQAAABgAAADiAAAA6gAAACEAAAAZAAAA4gAA
AOkAAAAiAAAAAAAAAP8AAAD8AAAA4wAAAN4AAADeAAAA3gAAAN4AAADeAAAA3gAAAOIAAAD9AAAA5QAA
ACQAAAACAAAAHgAAADoAAADIAAAAywAAAB8AAAAXAAAAwwAAAM8AAAA+AAAAOAAAAMgAAADOAAAAPgAA
ADgAAADIAAAAzgAAAD8AAAAiAAAA/wAAAOgAAAA8AAAAGgAAABsAAAAaAAAAGgAAABsAAAAbAAAANwAA
AOQAAADnAAAAIgAAABkAAADMAAAA1QAAADgAAAAWAAAABAAAAAMAAAAVAAAAMwAAANAAAADVAAAANgAA
ADAAAADPAAAA1QAAADkAAAAyAAAAzgAAAOkAAAD/AAAA5QAAACIAAAAAAAAAHgAAACMAAAAjAAAAHwAA
AAEAAAAcAAAA4AAAAOcAAAAiAAAAGAAAAMYAAADPAAAAPgAAAB4AAAAFAAAABAAAAB0AAAA6AAAAygAA
AM8AAAA9AAAANwAAAMoAAADLAAAAHQAAABYAAADDAAAA4gAAAP8AAADlAAAAIgAAABkAAADJAAAA6AAA
AOcAAADOAAAAHwAAABsAAADhAAAA5wAAACQAAAABAAAAFgAAADMAAADPAAAA0wAAAB4AAAAWAAAAywAA
ANYAAAA6AAAAMwAAAM8AAADVAAAAOQAAABYAAAAEAAAAAwAAABcAAAAbAAAA/wAAAOUAAAAiAAAAHAAA
AOEAAAD/AAAA/wAAAOcAAAAjAAAAGwAAAOEAAADnAAAAJAAAAAIAAAAdAAAAOQAAAMkAAADQAAAAQAAA
ADgAAADKAAAAzAAAAB0AAAAWAAAAxAAAANAAAAA/AAAAHgAAAAUAAAAEAAAAHgAAACMAAAD/AAAA5QAA
ACIAAAAcAAAA4QAAAP8AAAD/AAAA5wAAACMAAAAbAAAA4QAAAOcAAAAiAAAAGQAAAMwAAADVAAAANgAA
ADIAAADRAAAA1QAAADgAAAAWAAAABAAAAAMAAAAWAAAAMwAAANAAAADSAAAAHgAAABYAAADKAAAA6gAA
AP8AAADlAAAAIgAAABgAAADDAAAA4AAAAOAAAADIAAAAHgAAABwAAADhAAAA5wAAACIAAAAYAAAAxQAA
AM8AAAA8AAAAOAAAAMsAAADOAAAAPgAAAB0AAAAFAAAABAAAAB0AAAA5AAAAygAAAM8AAAA+AAAAOAAA
AMgAAADiAAAA/wAAAOUAAAAhAAAAAAAAABcAAAAbAAAAGwAAABgAAAAAAAAAGwAAAOAAAADnAAAAJAAA
AAEAAAAWAAAAMgAAAM8AAADWAAAAOAAAADAAAADPAAAA0gAAAB4AAAAWAAAAywAAANUAAAA3AAAAMAAA
AM8AAADVAAAAOAAAABgAAAD/AAAA6QAAAEMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAA+AAAA5QAA
AOcAAAAkAAAAAgAAAB0AAAA5AAAAygAAANEAAAA+AAAANwAAAMoAAADQAAAAQAAAADkAAADKAAAA0AAA
AD4AAAA4AAAAygAAANAAAAA+AAAAIQAAAP8AAAD/AAAA7AAAAOgAAADoAAAA6AAAAOgAAADoAAAA6AAA
AOsAAAD/AAAA5wAAACMAAAAZAAAAzQAAANUAAAA3AAAAMgAAANEAAADVAAAANwAAADIAAADQAAAA1gAA
ADkAAAAzAAAA0AAAANYAAAA4AAAAMQAAAM4AAADqAAAA3gAAAN4AAADgAAAA4AAAAOAAAADgAAAA4AAA
AOAAAADgAAAA4AAAAOAAAADIAAAAHgAAABgAAADFAAAAzwAAADwAAAA4AAAAywAAAM4AAAA8AAAANwAA
AMoAAADLAAAAHAAAABYAAADEAAAAzwAAADwAAAA2AAAAyAAAAOIAAAAdAAAAHQAAABsAAAAbAAAAHQAA
AB0AAAAdAAAAHQAAAB0AAAAdAAAAGwAAABgAAAAEAAAAAwAAABYAAAAyAAAAzgAAANYAAAA4AAAAMAAA
AM4AAADVAAAAOQAAABYAAAAEAAAAAwAAABYAAAAyAAAAzwAAANQAAAA4AAAAGAAAAAAAAAACAAAAHwAA
ACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAfAAAAIAAAAAUAAAAEAAAAHgAAADoAAADLAAAA0QAA
AD8AAAA4AAAAywAAANEAAABAAAAAHgAAAAUAAAAEAAAAHgAAADoAAADLAAAA0AAAAD8AAAAiAAAAAAAA
ABgAAADMAAAA0wAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAGQAAAM0AAADTAAAAHQAAABcAAADNAAAA1gAA
ADoAAAA1AAAA0gAAANYAAAA4AAAAMgAAANEAAADSAAAAHQAAABYAAADMAAAA1wAAADgAAAAxAAAAzwAA
AOoAAAAiAAAAOgAAAMoAAADPAAAAQAAAAB8AAAAFAAAABAAAAB4AAAA7AAAAygAAAM8AAAA9AAAAOQAA
AMsAAADKAAAAHAAAABcAAADGAAAAzwAAADwAAAA3AAAAygAAAM8AAAA+AAAAOAAAAMoAAADPAAAAPAAA
ADYAAADIAAAA4gAAAOkAAADTAAAAOAAAADMAAADQAAAA0QAAAB8AAAAZAAAAywAAANUAAAA5AAAAMgAA
AM8AAADVAAAAOQAAABYAAAAEAAAAAwAAABgAAAA0AAAAzwAAANUAAAA5AAAAMgAAAM8AAADVAAAAOQAA
ADMAAADPAAAA1QAAADoAAAAbAAAA4wAAAMoAAAAcAAAAFwAAAMYAAADMAAAAHgAAABgAAADGAAAAzAAA
AB0AAAAWAAAAxQAAANEAAAA/AAAAHgAAAAUAAAAAAAAAAAAAABgAAADFAAAAzQAAAB0AAAAWAAAAxQAA
AMwAAAAdAAAAFgAAAMYAAADMAAAAHgAAAAAAAAAcAAAAGQAAAAIAAAABAAAAGAAAABkAAAACAAAAAQAA
ABgAAAAZAAAAAgAAAAEAAAAYAAAANgAAANEAAADSAAAAHwAAAAAAAAAAAAAAAwAAABgAAAAZAAAAAgAA
AAEAAAAYAAAAGQAAAAIAAAABAAAAGAAAABkAAAACAAAAAAAAACIAAAAiAAAAJAAAACQAAAAiAAAAIgAA
ACQAAAAkAAAAIgAAACIAAAAkAAAAIAAAAAIAAAAYAAAAxQAAAM8AAAA/AAAAHwAAAAUAAAAEAAAAHgAA
ACMAAAAkAAAAJAAAACIAAAAiAAAAJAAAACQAAAAiAAAAIgAAACQAAAAkAAAA5QAAAOUAAADnAAAA5wAA
AOcAAADnAAAA5wAAAOcAAADnAAAA5wAAAOcAAADOAAAAIAAAAAEAAAAWAAAAMgAAAM8AAADTAAAAIAAA
ABgAAADIAAAA5wAAAOcAAADnAAAA5wAAAOcAAADnAAAA5wAAAOcAAADnAAAA5QAAAOUAAAD/AAAA/QAA
AOUAAADgAAAA4QAAAOEAAADhAAAA4QAAAOAAAADkAAAA/gAAAOcAAAAkAAAAAgAAAB0AAAA5AAAAygAA
AM0AAAAfAAAAGwAAAOAAAAD/AAAA5QAAAOAAAADhAAAA4QAAAOEAAADhAAAA4AAAAOQAAAD9AAAA/wAA
AP8AAADoAAAAPQAAABsAAAAbAAAAGwAAABsAAAAbAAAAHAAAADgAAADkAAAA5wAAACIAAAAZAAAAzAAA
ANUAAAA4AAAAFwAAAAIAAAAdAAAA4AAAAOsAAAA+AAAAGwAAABwAAAAbAAAAGwAAABsAAAAcAAAANwAA
AOIAAAD/AAAA/wAAAOUAAAAiAAAAAAAAAB4AAAAjAAAAIwAAAB8AAAABAAAAHAAAAOAAAADnAAAAIgAA
ABgAAADGAAAAzwAAAD4AAAAdAAAAAwAAAB0AAADgAAAA6AAAACMAAAAAAAAAHgAAACMAAAAjAAAAHwAA
AAEAAAAbAAAA3gAAAP8AAAD/AAAA5QAAACIAAAAZAAAAyQAAAOcAAADnAAAAzgAAAB8AAAAbAAAA4QAA
AOcAAAAkAAAAAQAAABYAAAAzAAAAzwAAANMAAAAgAAAAGwAAAOAAAADoAAAAIwAAABgAAADIAAAA5wAA
AOcAAADOAAAAHwAAABsAAADeAAAA/wAAAP8AAADlAAAAIgAAABwAAADhAAAA/wAAAP8AAADnAAAAIwAA
ABsAAADhAAAA5wAAACQAAAACAAAAHAAAADgAAADKAAAAzAAAAB8AAAAbAAAA4AAAAOgAAAAjAAAAGwAA
AOAAAAD/AAAA/wAAAOcAAAAjAAAAGgAAAN4AAAD/AAAA/wAAAOUAAAAiAAAAHAAAAOEAAAD/AAAA/wAA
AOcAAAAjAAAAGwAAAOEAAADnAAAAIgAAABkAAADMAAAA1AAAADgAAAAWAAAAAgAAAB0AAADgAAAA6AAA
ACMAAAAbAAAA4AAAAP8AAAD/AAAA6AAAACMAAAAaAAAA3gAAAP8AAAD/AAAA5QAAACIAAAAYAAAAxAAA
AOEAAADhAAAAyQAAAB4AAAAbAAAA4QAAAOcAAAAiAAAAGAAAAMYAAADQAAAAPgAAAB4AAAADAAAAHQAA
AOAAAADoAAAAIwAAABcAAADDAAAA4QAAAOEAAADJAAAAHgAAABsAAADeAAAA/wAAAP8AAADlAAAAIQAA
AAAAAAAYAAAAHAAAABwAAAAZAAAAAAAAABsAAADgAAAA5wAAACQAAAABAAAAFwAAADMAAADPAAAA0wAA
ACAAAAAbAAAA4AAAAOgAAAAjAAAAAAAAABgAAAAcAAAAHAAAABkAAAAAAAAAGgAAAN4AAAD/AAAA/wAA
AOkAAABCAAAAIQAAACIAAAAiAAAAIgAAACIAAAAiAAAAPQAAAOUAAADnAAAAJAAAAAIAAAAcAAAAOAAA
AMoAAADMAAAAHwAAABsAAADgAAAA7AAAAEMAAAAhAAAAIgAAACIAAAAiAAAAIgAAACIAAAA8AAAA4wAA
AP8AAAD/AAAA/AAAAOkAAADlAAAA5QAAAOUAAADlAAAA5QAAAOUAAADoAAAA/QAAAOUAAAAiAAAAGQAA
AMoAAADTAAAAOgAAABgAAAACAAAAHQAAAN4AAAD/AAAA6QAAAOUAAADlAAAA5QAAAOUAAADlAAAA5QAA
AOgAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5QAA
ACIAAAAcAAAA4wAAAOkAAAAiAAAAAAAAAAAAAAAdAAAA3gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
</value>
</data>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>141, 17</value>
</metadata>
<metadata name="saveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>289, 17</value>
</metadata>
</root>
+290
View File
@@ -0,0 +1,290 @@
namespace 开发辅助工具.Tools
{
partial class FrmRegex
{
/// <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(FrmRegex));
this.tabControl3 = new System.Windows.Forms.TabControl();
this.TabTxtResult = new System.Windows.Forms.TabPage();
this.RichRegexOutput = new System.Windows.Forms.RichTextBox();
this.contextMenuStripRichText1 = new ryProcessManager.hezuo.ContextMenuStripRichText();
this.tabPage10 = new System.Windows.Forms.TabPage();
this.table1 = new XPTable.Models.Table();
this.columnModel1 = new XPTable.Models.ColumnModel();
this.textColumn1 = new XPTable.Models.TextColumn();
this.textColumn2 = new XPTable.Models.TextColumn();
this.textColumn3 = new XPTable.Models.TextColumn();
this.tableModel1 = new XPTable.Models.TableModel();
this.tabPage11 = new System.Windows.Forms.TabPage();
this.LnkRegexHelp = new System.Windows.Forms.LinkLabel();
this.ChkIgnoreCase = new System.Windows.Forms.CheckBox();
this.ChkMultiline = new System.Windows.Forms.CheckBox();
this.RySearchRegex = new ryControls.rySearch();
this.label12 = new System.Windows.Forms.Label();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.TxtRegexInput = new ryControls.Controls.RichTextBox2();
this.tabControl3.SuspendLayout();
this.TabTxtResult.SuspendLayout();
this.tabPage10.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.tabPage11.SuspendLayout();
this.SuspendLayout();
//
// tabControl3
//
this.tabControl3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControl3.Controls.Add(this.TabTxtResult);
this.tabControl3.Controls.Add(this.tabPage10);
this.tabControl3.Controls.Add(this.tabPage11);
this.tabControl3.Location = new System.Drawing.Point(12, 201);
this.tabControl3.Name = "tabControl3";
this.tabControl3.SelectedIndex = 0;
this.tabControl3.Size = new System.Drawing.Size(825, 294);
this.tabControl3.TabIndex = 13;
//
// TabTxtResult
//
this.TabTxtResult.Controls.Add(this.RichRegexOutput);
this.TabTxtResult.Location = new System.Drawing.Point(4, 22);
this.TabTxtResult.Name = "TabTxtResult";
this.TabTxtResult.Padding = new System.Windows.Forms.Padding(3);
this.TabTxtResult.Size = new System.Drawing.Size(817, 268);
this.TabTxtResult.TabIndex = 0;
this.TabTxtResult.Text = "普通结果";
this.TabTxtResult.UseVisualStyleBackColor = true;
//
// RichRegexOutput
//
this.RichRegexOutput.BackColor = System.Drawing.Color.White;
this.RichRegexOutput.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichRegexOutput.ContextMenuStrip = this.contextMenuStripRichText1;
this.RichRegexOutput.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichRegexOutput.Location = new System.Drawing.Point(3, 3);
this.RichRegexOutput.Name = "RichRegexOutput";
this.RichRegexOutput.ReadOnly = true;
this.RichRegexOutput.Size = new System.Drawing.Size(811, 262);
this.RichRegexOutput.TabIndex = 4;
this.RichRegexOutput.Text = "";
this.RichRegexOutput.WordWrap = false;
//
// contextMenuStripRichText1
//
this.contextMenuStripRichText1.Name = "contextMenuStripRichText1";
this.contextMenuStripRichText1.Size = new System.Drawing.Size(101, 164);
//
// tabPage10
//
this.tabPage10.Controls.Add(this.table1);
this.tabPage10.Location = new System.Drawing.Point(4, 22);
this.tabPage10.Name = "tabPage10";
this.tabPage10.Padding = new System.Windows.Forms.Padding(3);
this.tabPage10.Size = new System.Drawing.Size(817, 268);
this.tabPage10.TabIndex = 1;
this.tabPage10.Text = "列表展示";
this.tabPage10.UseVisualStyleBackColor = true;
//
// table1
//
this.table1.ColumnModel = this.columnModel1;
this.table1.Dock = System.Windows.Forms.DockStyle.Fill;
this.table1.FullRowSelect = true;
this.table1.Location = new System.Drawing.Point(3, 3);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(811, 262);
this.table1.TabIndex = 0;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
//
// columnModel1
//
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
this.textColumn1,
this.textColumn2,
this.textColumn3});
//
// textColumn1
//
this.textColumn1.Editable = false;
this.textColumn1.Tag = null;
this.textColumn1.Text = "匹配的内容";
this.textColumn1.Width = 550;
//
// textColumn2
//
this.textColumn2.Editable = false;
this.textColumn2.Tag = null;
this.textColumn2.Text = "位置";
//
// textColumn3
//
this.textColumn3.Editable = false;
this.textColumn3.Tag = null;
this.textColumn3.Text = "分组";
this.textColumn3.Width = 150;
//
// tabPage11
//
this.tabPage11.Controls.Add(this.LnkRegexHelp);
this.tabPage11.Location = new System.Drawing.Point(4, 22);
this.tabPage11.Name = "tabPage11";
this.tabPage11.Padding = new System.Windows.Forms.Padding(3);
this.tabPage11.Size = new System.Drawing.Size(817, 268);
this.tabPage11.TabIndex = 2;
this.tabPage11.Text = "正则帮助";
this.tabPage11.UseVisualStyleBackColor = true;
//
// LnkRegexHelp
//
this.LnkRegexHelp.AutoSize = true;
this.LnkRegexHelp.Location = new System.Drawing.Point(13, 10);
this.LnkRegexHelp.Name = "LnkRegexHelp";
this.LnkRegexHelp.Size = new System.Drawing.Size(53, 12);
this.LnkRegexHelp.TabIndex = 0;
this.LnkRegexHelp.TabStop = true;
this.LnkRegexHelp.Text = "访问帮助";
this.LnkRegexHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkRegexHelp_LinkClicked);
//
// ChkIgnoreCase
//
this.ChkIgnoreCase.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.ChkIgnoreCase.AutoSize = true;
this.ChkIgnoreCase.Location = new System.Drawing.Point(616, 12);
this.ChkIgnoreCase.Name = "ChkIgnoreCase";
this.ChkIgnoreCase.Size = new System.Drawing.Size(84, 16);
this.ChkIgnoreCase.TabIndex = 17;
this.ChkIgnoreCase.Text = "忽略大小写";
this.ChkIgnoreCase.UseVisualStyleBackColor = true;
//
// ChkMultiline
//
this.ChkMultiline.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.ChkMultiline.AutoSize = true;
this.ChkMultiline.Location = new System.Drawing.Point(538, 12);
this.ChkMultiline.Name = "ChkMultiline";
this.ChkMultiline.Size = new System.Drawing.Size(72, 16);
this.ChkMultiline.TabIndex = 16;
this.ChkMultiline.Text = "多行模式";
this.ChkMultiline.UseVisualStyleBackColor = true;
//
// RySearchRegex
//
this.RySearchRegex.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.RySearchRegex.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
this.RySearchRegex.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.RySearchRegex.EmptyText = "";
this.RySearchRegex.Location = new System.Drawing.Point(81, 6);
this.RySearchRegex.Name = "RySearchRegex";
this.RySearchRegex.Size = new System.Drawing.Size(451, 25);
this.RySearchRegex.TabIndex = 14;
this.RySearchRegex.OnSearch += new System.EventHandler(this.RySearchRegex_OnSearch);
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(10, 13);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(65, 12);
this.label12.TabIndex = 12;
this.label12.Text = "正则表达式";
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(185, 70);
this.menuRight1.SourceContent = this;
//
// TxtRegexInput
//
this.TxtRegexInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtRegexInput.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtRegexInput.DetectUrls = false;
this.TxtRegexInput.EmptyText = "在此输入待匹配文本";
this.TxtRegexInput.ForeColor = System.Drawing.Color.Black;
this.TxtRegexInput.Location = new System.Drawing.Point(12, 37);
this.TxtRegexInput.Name = "TxtRegexInput";
this.TxtRegexInput.OnlyInputText = true;
this.TxtRegexInput.Size = new System.Drawing.Size(825, 158);
this.TxtRegexInput.TabIndex = 18;
this.TxtRegexInput.Text = "";
this.TxtRegexInput.DoubleClick += new System.EventHandler(this.TxtRegexInput_DoubleClick);
//
// FrmRegex
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(849, 499);
this.Controls.Add(this.TxtRegexInput);
this.Controls.Add(this.tabControl3);
this.Controls.Add(this.ChkIgnoreCase);
this.Controls.Add(this.ChkMultiline);
this.Controls.Add(this.RySearchRegex);
this.Controls.Add(this.label12);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmRegex";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "正则表达式";
this.tabControl3.ResumeLayout(false);
this.TabTxtResult.ResumeLayout(false);
this.tabPage10.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit();
this.tabPage11.ResumeLayout(false);
this.tabPage11.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TabControl tabControl3;
private System.Windows.Forms.TabPage TabTxtResult;
private System.Windows.Forms.RichTextBox RichRegexOutput;
private System.Windows.Forms.TabPage tabPage10;
private XPTable.Models.Table table1;
private System.Windows.Forms.TabPage tabPage11;
private System.Windows.Forms.LinkLabel LnkRegexHelp;
private System.Windows.Forms.CheckBox ChkIgnoreCase;
private System.Windows.Forms.CheckBox ChkMultiline;
private ryControls.rySearch RySearchRegex;
private System.Windows.Forms.Label label12;
private XPTable.Models.ColumnModel columnModel1;
private XPTable.Models.TableModel tableModel1;
private XPTable.Models.TextColumn textColumn1;
private XPTable.Models.TextColumn textColumn2;
private XPTable.Models.TextColumn textColumn3;
private ryProcessManager.hezuo.ContextMenuStripRichText contextMenuStripRichText1;
private ryPaiban.Model.MenuRight menuRight1;
private ryControls.Controls.RichTextBox2 TxtRegexInput;
}
}
+110
View File
@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmRegex : DockContent
{
public FrmRegex()
{
InitializeComponent();
}
private void RySearchRegex_OnSearch(object sender, EventArgs e)
{
if (RySearchRegex.Text.Trim() == "")
{
MessageBox.Show("正则表达式不能为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
RichRegexOutput.Text = "";
table1.TableModel.Rows.Clear();
tabPage10.Text = "列表展示(" + tableModel1.Rows.Count + ")";
TabTxtResult.Text = "普通结果(正在读取)";
bool IgnoreCase = ChkIgnoreCase.Checked;
bool Multiline = ChkMultiline.Checked;
string RegexText = RySearchRegex.Text;
string RegexInput = TxtRegexInput.Text;
table1.BeginUpdate();
try
{
RegexOptions option = new RegexOptions();
if (IgnoreCase)
{
option = RegexOptions.IgnoreCase;
}
if (Multiline) { option = option | RegexOptions.Multiline; }
Regex reg = new Regex(RegexText, option);
//返回一个结果集
MatchCollection result = reg.Matches(RegexInput);
string[] groups = reg.GetGroupNames();
string txt = "";
//遍历每个结果
for(int n=0;n<result.Count;n++)
{
Match m = result[n];
//输出结果
txt += m.ToString() + "\r\n";
if (m.Groups.Count > 0)
{
for (int i = 0; i < groups.Length; i++)
{
XPTable.Models.Row itemList = new XPTable.Models.Row();
//需要修改此处
itemList.Cells.Add(new XPTable.Models.Cell(m.Groups[groups[i]].Value));//示例
itemList.Cells.Add(new XPTable.Models.Cell(m.Index.ToString()));
itemList.Cells.Add(new XPTable.Models.Cell(groups[i]));
tableModel1.Rows.Add(itemList);
}
}
else
{
XPTable.Models.Row itemList = new XPTable.Models.Row();
//需要修改此处
itemList.Cells.Add(new XPTable.Models.Cell(m.ToString()));//示例
itemList.Cells.Add(new XPTable.Models.Cell(m.Index.ToString()));
itemList.Cells.Add(new XPTable.Models.Cell(""));
tableModel1.Rows.Add(itemList);
}
}
table1.EndUpdate();
RichRegexOutput.Text = txt;
TabTxtResult.Text = "普通结果("+result.Count+")";
tabPage10.Text = "列表展示(" + tableModel1.Rows.Count + ")";
}
catch (Exception ex)
{
TabTxtResult.Text = "普通结果(" + 0 + ")";
tabPage10.Text = "列表展示(" + tableModel1.Rows.Count + ")";
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void LnkRegexHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
ryCommon.RyFiles.OpenUrl("http://www.runoob.com/regexp/regexp-metachar.html");
}
private void TxtRegexInput_DoubleClick(object sender, EventArgs e)
{
ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
{
Icon = Icon
};
frm.richTextBox1.Text = txt.Text;
if (frm.ShowDialog() == DialogResult.OK)
{
txt.Text = frm.richTextBox1.Text;
}
}
}
}
@@ -0,0 +1,209 @@
<?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="contextMenuStripRichText1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>303, 14</value>
</metadata>
<metadata name="columnModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>35, 14</value>
</metadata>
<metadata name="tableModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>176, 14</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>518, 14</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQCKiooAnp6eAI2N
jQaUlJQXlJSUFYaGhgSenp4AeHh4AJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZAJ6e
ngCZmZk5pqammK2trb2srKy7paWllpqamjmdnZ0AmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZkAmZmZAJmZmQCZmZkAmZmZAAAA
AACZmZkAlZWVEqqqqrTLy8v/1NTU/9PT0//Kysr/qampsZSUlA+ZmZkAAAAAAJmZmQCZmZkAmZmZAJmZ
mQCZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZAJeXlwDAwMAAgYGBB21t
bQKYmJgAmZmZAJmZmQCWlpY6u7u75djY2P/Z2dn/2dnZ/9fX1/+4uLjblpaWMJmZmQCZmZkAmJiYAG1t
bQKBgYEHzc3NAJOTkwCZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQCYmJgAkpKSDZ+f
n0+pqamYpKSkeJaWlisPDw8AFxcXAZqamm7Dw8P82tra/9nZ2f/Z2dn/2tra/8HBwfWZmZljAAAAARgY
GACWlpYrpKSkeKmpqZigoKBKbGxsApiYmACZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZkAl5eXAJOT
kw2ioqJtv7+/5M3Nzf/IyMj8sLCwzp+fn2+kpKSXuLi44tPT0//b29v/2tra/9ra2v/b29v/0tLS/7a2
tt+kpKSWoKCgb7Gxsc7IyMj8zc3N/7m5ueGenp5UdnZ2ApSUlACZmZkAAAAAAAAAAAAAAAAAAAAAAJmZ
mQCtra0Anp6eS7+/v+TZ2dn/3Nzc/9zc3P/U1NT/x8fH+c7Ozv/Y2Nj/29vb/9vb2//b29v/29vb/9vb
2//b29v/2NjY/87Ozv/Hx8f51dXV/9zc3P/c3Nz/19fX/7m5ueGfn59HsbGxAJmZmQAAAAAAAAAAAAAA
AAAAAAAAmZmZAH5+fgapqamTz8/P/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29v/3Nzc/93d
3f/d3d3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d3/z8/P/6mpqZN+fn4GmZmZAAAA
AAAAAAAAAAAAAAAAAACZmZkAAAAAAKOjo2vOzs745OTk/93d3f/d3d3/3d3d/93d3f/d3d3/39/f/+Li
4v/g4OD/4ODg/+Dg4P/g4OD/4eHh/9/f3//d3d3/3d3d/93d3f/d3d3/3d3d/+Tk5P/Ozs74o6OjawAA
AACZmZkAAAAAAAAAAAAAAAAAAAAAAJmZmQCYmJgAlJSUIbOzs8Th4eH/4ODg/93d3f/e3t7/39/f/+Pj
4//g4OD/2tra/9XV1f/S0tL/0tLS/9XV1f/a2tr/4ODg/+Pj4//f39//3t7e/93d3f/g4OD/4eHh/7Oz
s8OUlJQhmJiYAJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQDj4+MAn5+fbsvLy/ng4OD/3t7e/9/f
3//j4+P/29vb/9HR0f/Pz8//z8/P/9DQ0P/Q0ND/z8/P/8/Pz//R0dH/29vb/+Pj4//f39//3t7e/+Dg
4P/Kysr4n5+fbOfn5wCZmZkAAAAAAAAAAAAAAAAAmZmZAJmZmQCZmZkAmJiYAAwMDAGlpaWX0tLS/+Dg
4P/g4OD/5OTk/9nZ2f/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/2dnZ/+Pj
4//g4OD/4ODg/9LS0v+kpKSOvLy8AJmZmQCZmZkAmZmZAJmZmQCRkZEAo6OjAJWVlReWlpY8nJycbbu7
u+Le3t7/4ODg/+Li4v/c3Nz/zc3N/8vLy//Ly8v/y8vL/szMzNrMzMy2zMzMtszMzNrLy8v+y8vL/8vL
y//Nzc3/3d3d/+Li4v/g4OD/3d3d/7q6ut2amppqlpaWPJWVlRejo6MAkZGRAJ+fnwCZmZk5ra2tucDA
wOfJycn829vb/+Li4v/i4uL/4uLi/9HR0f/IyMj/ycnJ/8nJyf7Jycm1ysrKNsnJyQ3JyckNysrKNsnJ
ybXJycn+ycnJ/8jIyP/R0dH/4uLi/+Li4v/i4uL/2dnZ/8jIyPzAwMDnra2tuZqamjqhoaEAg4ODBKen
p5bT09P/4uLi/+Tk5P/j4+P/4+Pj/+Tk5P/e3t7/ycnJ/8bGxv/Gxsb/xsbG2sbGxjbIyMgAysrKAMrK
ygDIyMgAxsbGNsbGxtrGxsb/xsbG/8nJyf/d3d3/5OTk/+Pj4//k5OT/5OTk/+Li4v/S0tL/oqKikbu7
uwCTk5MVsLCwu97e3v/k5OT/5OTk/+Tk5P/k5OT/5eXl/9vb2//ExMT/xMTE/8TExP/ExMS2xMTEDcXF
xQDIyMgAyMjIAMXFxQDExMQNxMTEtsTExP/ExMT/xMTE/9zc3P/l5eX/5OTk/+Tk5P/k5OT/5OTk/9vb
2/+kpKSmwcHBAJKSkhKvr6+54ODg/+bm5v/l5eX/5eXl/+Xl5f/m5ub/2tra/8LCwv/BwcH/wcHB/8HB
wbbBwcENwMDAAL29vQC9vb0AwMDAAMHBwQ3BwcG2wcHB/8HBwf/BwcH/2dnZ/+bm5v/l5eX/5eXl/+Xl
5f/m5ub/3d3d/6SkpKbCwsIAYWFhAqenp47f39//8vLy/+7u7v/p6en/5ubm/+bm5v/c3Nz/wsLC/76+
vv+/v7//v7+/2r6+vja9vb0Au7u7ALu7uwC9vb0Avr6+Nr+/v9q/v7//vr6+/8LCwv/c3Nz/5ubm/+bm
5v/p6en/7u7u//Ly8v/e3t7/pKSki8LCwgCioqIAm5ubM7Gxsa3KysrZ19fX9ezs7P/t7e3/5+fn/+Pj
4//Hx8f/vLy8/7y8vP+8vLz+vLy8tbu7uza7u7sNu7u7Dbu7uza8vLy1vLy8/ry8vP+8vLz/x8fH/+Pj
4//n5+f/7e3t/+3t7f/X19f1ysrK2bGxsa2bm5szpaWlAGpqagCgoKAAkJCQDJSUlC+ZmZlfxMTE2u3t
7f/p6en/6Ojo/9TU1P+7u7v/ubm5/7q6uv+6urr+ubm52rm5uba5ubm2ubm52rq6uv66urr/ubm5/7u7
u//U1NT/6Ojo/+np6f/u7u7/w8PD2ZmZmV+UlJQvkJCQDKCgoABqamoAmZmZAJmZmQCZmZkAmJiYAL6+
vgCmpqaN4ODg/+zs7P/p6en/5ubm/8jIyP+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3
t/+3t7f/yMjI/+bm5v/p6en/7Ozs/97e3v6lpaWIvb29AJiYmACZmZkAmZmZAJmZmQAAAAAAAAAAAAAA
AACZmZkAEBAQAKGhoXDS0tL56+vr/+rq6v/q6ur/4+Pj/8fHx/+3t7f/tbW1/7W1tf+1tbX/tbW1/7W1
tf+1tbX/t7e3/8fHx//j4+P/6urq/+rq6v/r6+v/0tLS+aGhoW////8AmZmZAAAAAAAAAAAAAAAAAAAA
AAAAAAAAmZmZAJiYmACVlZUrtbW1zuPj4//r6+v/6+vr/+vr6//r6+v/5+fn/9TU1P/CwsL/urq6/7W1
tf+1tbX/urq6/8LCwv/U1NT/5+fn/+vr6//r6+v/6+vr/+vr6//i4uL/tLS0yZWVlSaYmJgAmZmZAAAA
AAAAAAAAAAAAAAAAAACZmZkAYWFhAqioqHnV1dX87Ozs/+zs7P/s7Oz/7Ozs/+vr6//s7Oz/7Ozs/+bm
5v/e3t7/2tra/9ra2v/e3t7/5ubm/+zs7P/s7Oz/6+vr/+zs7P/s7Oz/7Ozs/+zs7P/U1NT6qKiod2Rk
ZAKZmZkAAAAAAAAAAAAAAAAAAAAAAJmZmQB4eHgGrq6uleDg4P/x8fH/7e3t/+3t7f/x8fH/9PT0//Ly
8v/u7u7/7e3t/+7u7v/u7u7/7u7u/+7u7v/t7e3/7u7u//Ly8v/09PT/8fHx/+3t7f/t7e3/8vLy/+Dg
4P+urq6VeHh4BpmZmQAAAAAAAAAAAAAAAAAAAAAAmZmZALy8vAChoaFHysrK4fX19f/09PT/9fX1//Dw
8P/b29v45+fn/fX19f/09PT/7u7u/+7u7v/u7u7/7u7u//T09P/19fX/5ubm/dra2vfw8PD/9fX1//T0
9P/19fX/ysrK4aGhoUe8vLwAmZmZAAAAAAAAAAAAAAAAAAAAAACZmZkAkZGRAGNjYwKioqJUysrK4ejo
6P/e3t74uLi4xKCgoGmoqKiFxcXF2e/v7//x8fH/7u7u/+7u7v/y8vL/7+/v/8XFxdmnp6eDoKCgZ7i4
uMTe3t746Ojo/8rKyuGioqJUY2NjApGRkQCZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZkAl5eXAHBw
cAKfn59EsLCwkKioqGuTk5Mh////AL6+vgCZmZlj09PT+fPz8//v7+//7+/v//T09P/S0tL1mZmZX8HB
wQD///8Ak5OTIaioqGuwsLCQn5+fRHBwcAKXl5cAmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACZmZkAkpKSAKurqwBubm4FAAAAAZiYmACZmZkAmZmZAJWVlTjIyMji9PT0//Dw8P/w8PD/8/Pz/8XF
xduVlZUxmZmZAJmZmQCYmJgAAAAAAW5ubgWrq6sAkpKSAJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACZmZkAmZmZAJmZmQCZmZkAmZmZAAAAAACZmZkAkZGRDrKysq/k5OT/7+/v/+/v
7//k5OT/srKyr5GRkQ+ZmZkAAAAAAJmZmQCZmZkAmZmZAJmZmQCZmZkAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQCgoKAAm5ubM6am
pouoqKimqKiopqampoubm5szoKCgAJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZAGpq
agCkpKQAx8fHANDQ0ADQ0NAAx8fHAKSkpABqamoAmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/+AH///gB//4IAQf8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA+AA
AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAB8AAAAPAAAADwAAAA8AA
AAPAAAAD4AAAB/AAAA/4IAQf/+AH///gB/8=
</value>
</data>
</root>
+84
View File
@@ -0,0 +1,84 @@
namespace 开发辅助工具.Tools
{
partial class FrmSetup
{
/// <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(FrmSetup));
this.BtnCopyExe = new System.Windows.Forms.Button();
this.BtnCopyPram = new System.Windows.Forms.Button();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.SuspendLayout();
//
// BtnCopyExe
//
this.BtnCopyExe.Location = new System.Drawing.Point(12, 12);
this.BtnCopyExe.Name = "BtnCopyExe";
this.BtnCopyExe.Size = new System.Drawing.Size(142, 38);
this.BtnCopyExe.TabIndex = 4;
this.BtnCopyExe.Text = "复制命令";
this.BtnCopyExe.UseVisualStyleBackColor = true;
this.BtnCopyExe.Click += new System.EventHandler(this.BtnCopyExe_Click);
//
// BtnCopyPram
//
this.BtnCopyPram.Location = new System.Drawing.Point(160, 12);
this.BtnCopyPram.Name = "BtnCopyPram";
this.BtnCopyPram.Size = new System.Drawing.Size(142, 38);
this.BtnCopyPram.TabIndex = 5;
this.BtnCopyPram.Text = "复制参数";
this.BtnCopyPram.UseVisualStyleBackColor = true;
this.BtnCopyPram.Click += new System.EventHandler(this.BtnCopyPram_Click);
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(185, 92);
this.menuRight1.SourceContent = this;
//
// FrmSetup
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.BtnCopyExe);
this.Controls.Add(this.BtnCopyPram);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmSetup";
this.Text = "安装";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button BtnCopyExe;
private System.Windows.Forms.Button BtnCopyPram;
private ryPaiban.Model.MenuRight menuRight1;
}
}
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmSetup : DockContent
{
public FrmSetup()
{
InitializeComponent();
}
private void BtnCopyExe_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.CopyToClip(Application.ExecutablePath);
}
private void BtnCopyPram_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.CopyToClip("get \"$(ProjectDir)$(ProjectFileName)\"");
}
}
}
@@ -0,0 +1,200 @@
<?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="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQCKiooAnp6eAI2N
jQaUlJQXlJSUFYaGhgSenp4AeHh4AJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZAJ6e
ngCZmZk5pqammK2trb2srKy7paWllpqamjmdnZ0AmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZkAmZmZAJmZmQCZmZkAmZmZAAAA
AACZmZkAlZWVEqqqqrTLy8v/1NTU/9PT0//Kysr/qampsZSUlA+ZmZkAAAAAAJmZmQCZmZkAmZmZAJmZ
mQCZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZAJeXlwDAwMAAgYGBB21t
bQKYmJgAmZmZAJmZmQCWlpY6u7u75djY2P/Z2dn/2dnZ/9fX1/+4uLjblpaWMJmZmQCZmZkAmJiYAG1t
bQKBgYEHzc3NAJOTkwCZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQCYmJgAkpKSDZ+f
n0+pqamYpKSkeJaWlisPDw8AFxcXAZqamm7Dw8P82tra/9nZ2f/Z2dn/2tra/8HBwfWZmZljAAAAARgY
GACWlpYrpKSkeKmpqZigoKBKbGxsApiYmACZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZkAl5eXAJOT
kw2ioqJtv7+/5M3Nzf/IyMj8sLCwzp+fn2+kpKSXuLi44tPT0//b29v/2tra/9ra2v/b29v/0tLS/7a2
tt+kpKSWoKCgb7Gxsc7IyMj8zc3N/7m5ueGenp5UdnZ2ApSUlACZmZkAAAAAAAAAAAAAAAAAAAAAAJmZ
mQCtra0Anp6eS7+/v+TZ2dn/3Nzc/9zc3P/U1NT/x8fH+c7Ozv/Y2Nj/29vb/9vb2//b29v/29vb/9vb
2//b29v/2NjY/87Ozv/Hx8f51dXV/9zc3P/c3Nz/19fX/7m5ueGfn59HsbGxAJmZmQAAAAAAAAAAAAAA
AAAAAAAAmZmZAH5+fgapqamTz8/P/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29v/3Nzc/93d
3f/d3d3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d3/z8/P/6mpqZN+fn4GmZmZAAAA
AAAAAAAAAAAAAAAAAACZmZkAAAAAAKOjo2vOzs745OTk/93d3f/d3d3/3d3d/93d3f/d3d3/39/f/+Li
4v/g4OD/4ODg/+Dg4P/g4OD/4eHh/9/f3//d3d3/3d3d/93d3f/d3d3/3d3d/+Tk5P/Ozs74o6OjawAA
AACZmZkAAAAAAAAAAAAAAAAAAAAAAJmZmQCYmJgAlJSUIbOzs8Th4eH/4ODg/93d3f/e3t7/39/f/+Pj
4//g4OD/2tra/9XV1f/S0tL/0tLS/9XV1f/a2tr/4ODg/+Pj4//f39//3t7e/93d3f/g4OD/4eHh/7Oz
s8OUlJQhmJiYAJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQDj4+MAn5+fbsvLy/ng4OD/3t7e/9/f
3//j4+P/29vb/9HR0f/Pz8//z8/P/9DQ0P/Q0ND/z8/P/8/Pz//R0dH/29vb/+Pj4//f39//3t7e/+Dg
4P/Kysr4n5+fbOfn5wCZmZkAAAAAAAAAAAAAAAAAmZmZAJmZmQCZmZkAmJiYAAwMDAGlpaWX0tLS/+Dg
4P/g4OD/5OTk/9nZ2f/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/2dnZ/+Pj
4//g4OD/4ODg/9LS0v+kpKSOvLy8AJmZmQCZmZkAmZmZAJmZmQCRkZEAo6OjAJWVlReWlpY8nJycbbu7
u+Le3t7/4ODg/+Li4v/c3Nz/zc3N/8vLy//Ly8v/y8vL/szMzNrMzMy2zMzMtszMzNrLy8v+y8vL/8vL
y//Nzc3/3d3d/+Li4v/g4OD/3d3d/7q6ut2amppqlpaWPJWVlRejo6MAkZGRAJ+fnwCZmZk5ra2tucDA
wOfJycn829vb/+Li4v/i4uL/4uLi/9HR0f/IyMj/ycnJ/8nJyf7Jycm1ysrKNsnJyQ3JyckNysrKNsnJ
ybXJycn+ycnJ/8jIyP/R0dH/4uLi/+Li4v/i4uL/2dnZ/8jIyPzAwMDnra2tuZqamjqhoaEAg4ODBKen
p5bT09P/4uLi/+Tk5P/j4+P/4+Pj/+Tk5P/e3t7/ycnJ/8bGxv/Gxsb/xsbG2sbGxjbIyMgAysrKAMrK
ygDIyMgAxsbGNsbGxtrGxsb/xsbG/8nJyf/d3d3/5OTk/+Pj4//k5OT/5OTk/+Li4v/S0tL/oqKikbu7
uwCTk5MVsLCwu97e3v/k5OT/5OTk/+Tk5P/k5OT/5eXl/9vb2//ExMT/xMTE/8TExP/ExMS2xMTEDcXF
xQDIyMgAyMjIAMXFxQDExMQNxMTEtsTExP/ExMT/xMTE/9zc3P/l5eX/5OTk/+Tk5P/k5OT/5OTk/9vb
2/+kpKSmwcHBAJKSkhKvr6+54ODg/+bm5v/l5eX/5eXl/+Xl5f/m5ub/2tra/8LCwv/BwcH/wcHB/8HB
wbbBwcENwMDAAL29vQC9vb0AwMDAAMHBwQ3BwcG2wcHB/8HBwf/BwcH/2dnZ/+bm5v/l5eX/5eXl/+Xl
5f/m5ub/3d3d/6SkpKbCwsIAYWFhAqenp47f39//8vLy/+7u7v/p6en/5ubm/+bm5v/c3Nz/wsLC/76+
vv+/v7//v7+/2r6+vja9vb0Au7u7ALu7uwC9vb0Avr6+Nr+/v9q/v7//vr6+/8LCwv/c3Nz/5ubm/+bm
5v/p6en/7u7u//Ly8v/e3t7/pKSki8LCwgCioqIAm5ubM7Gxsa3KysrZ19fX9ezs7P/t7e3/5+fn/+Pj
4//Hx8f/vLy8/7y8vP+8vLz+vLy8tbu7uza7u7sNu7u7Dbu7uza8vLy1vLy8/ry8vP+8vLz/x8fH/+Pj
4//n5+f/7e3t/+3t7f/X19f1ysrK2bGxsa2bm5szpaWlAGpqagCgoKAAkJCQDJSUlC+ZmZlfxMTE2u3t
7f/p6en/6Ojo/9TU1P+7u7v/ubm5/7q6uv+6urr+ubm52rm5uba5ubm2ubm52rq6uv66urr/ubm5/7u7
u//U1NT/6Ojo/+np6f/u7u7/w8PD2ZmZmV+UlJQvkJCQDKCgoABqamoAmZmZAJmZmQCZmZkAmJiYAL6+
vgCmpqaN4ODg/+zs7P/p6en/5ubm/8jIyP+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3
t/+3t7f/yMjI/+bm5v/p6en/7Ozs/97e3v6lpaWIvb29AJiYmACZmZkAmZmZAJmZmQAAAAAAAAAAAAAA
AACZmZkAEBAQAKGhoXDS0tL56+vr/+rq6v/q6ur/4+Pj/8fHx/+3t7f/tbW1/7W1tf+1tbX/tbW1/7W1
tf+1tbX/t7e3/8fHx//j4+P/6urq/+rq6v/r6+v/0tLS+aGhoW////8AmZmZAAAAAAAAAAAAAAAAAAAA
AAAAAAAAmZmZAJiYmACVlZUrtbW1zuPj4//r6+v/6+vr/+vr6//r6+v/5+fn/9TU1P/CwsL/urq6/7W1
tf+1tbX/urq6/8LCwv/U1NT/5+fn/+vr6//r6+v/6+vr/+vr6//i4uL/tLS0yZWVlSaYmJgAmZmZAAAA
AAAAAAAAAAAAAAAAAACZmZkAYWFhAqioqHnV1dX87Ozs/+zs7P/s7Oz/7Ozs/+vr6//s7Oz/7Ozs/+bm
5v/e3t7/2tra/9ra2v/e3t7/5ubm/+zs7P/s7Oz/6+vr/+zs7P/s7Oz/7Ozs/+zs7P/U1NT6qKiod2Rk
ZAKZmZkAAAAAAAAAAAAAAAAAAAAAAJmZmQB4eHgGrq6uleDg4P/x8fH/7e3t/+3t7f/x8fH/9PT0//Ly
8v/u7u7/7e3t/+7u7v/u7u7/7u7u/+7u7v/t7e3/7u7u//Ly8v/09PT/8fHx/+3t7f/t7e3/8vLy/+Dg
4P+urq6VeHh4BpmZmQAAAAAAAAAAAAAAAAAAAAAAmZmZALy8vAChoaFHysrK4fX19f/09PT/9fX1//Dw
8P/b29v45+fn/fX19f/09PT/7u7u/+7u7v/u7u7/7u7u//T09P/19fX/5ubm/dra2vfw8PD/9fX1//T0
9P/19fX/ysrK4aGhoUe8vLwAmZmZAAAAAAAAAAAAAAAAAAAAAACZmZkAkZGRAGNjYwKioqJUysrK4ejo
6P/e3t74uLi4xKCgoGmoqKiFxcXF2e/v7//x8fH/7u7u/+7u7v/y8vL/7+/v/8XFxdmnp6eDoKCgZ7i4
uMTe3t746Ojo/8rKyuGioqJUY2NjApGRkQCZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZkAl5eXAHBw
cAKfn59EsLCwkKioqGuTk5Mh////AL6+vgCZmZlj09PT+fPz8//v7+//7+/v//T09P/S0tL1mZmZX8HB
wQD///8Ak5OTIaioqGuwsLCQn5+fRHBwcAKXl5cAmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACZmZkAkpKSAKurqwBubm4FAAAAAZiYmACZmZkAmZmZAJWVlTjIyMji9PT0//Dw8P/w8PD/8/Pz/8XF
xduVlZUxmZmZAJmZmQCYmJgAAAAAAW5ubgWrq6sAkpKSAJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACZmZkAmZmZAJmZmQCZmZkAmZmZAAAAAACZmZkAkZGRDrKysq/k5OT/7+/v/+/v
7//k5OT/srKyr5GRkQ+ZmZkAAAAAAJmZmQCZmZkAmZmZAJmZmQCZmZkAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmQCgoKAAm5ubM6am
pouoqKimqKiopqampoubm5szoKCgAJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZAGpq
agCkpKQAx8fHANDQ0ADQ0NAAx8fHAKSkpABqamoAmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/+AH///gB//4IAQf8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA+AA
AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAB8AAAAPAAAADwAAAA8AA
AAPAAAAD4AAAB/AAAA/4IAQf/+AH///gB/8=
</value>
</data>
</root>
+99
View File
@@ -0,0 +1,99 @@
namespace 开发辅助工具.Tools
{
partial class FrmStrCount
{
/// <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(FrmStrCount));
this.textEditorControl1 = new ICSharpCode.TextEditor.TextEditorControl();
this.contextMenuStripHighlightText1 = new ryProcessManager.hezuo.ContextMenuStripHighlightText();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.TxtFromCode = new ryControls.Controls.RichTextBox2();
this.SuspendLayout();
//
// textEditorControl1
//
this.textEditorControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textEditorControl1.ContextMenuStrip = this.contextMenuStripHighlightText1;
this.textEditorControl1.IsReadOnly = false;
this.textEditorControl1.Location = new System.Drawing.Point(12, 216);
this.textEditorControl1.Name = "textEditorControl1";
this.textEditorControl1.Size = new System.Drawing.Size(812, 267);
this.textEditorControl1.TabIndex = 19;
//
// contextMenuStripHighlightText1
//
this.contextMenuStripHighlightText1.Name = "contextMenuStripHighlightText1";
this.contextMenuStripHighlightText1.Size = new System.Drawing.Size(101, 186);
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// TxtFromCode
//
this.TxtFromCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtFromCode.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtFromCode.DetectUrls = false;
this.TxtFromCode.EmptyText = "请填写待计算的字符串";
this.TxtFromCode.ForeColor = System.Drawing.Color.Black;
this.TxtFromCode.Location = new System.Drawing.Point(12, 3);
this.TxtFromCode.Name = "TxtFromCode";
this.TxtFromCode.OnlyInputText = true;
this.TxtFromCode.Size = new System.Drawing.Size(812, 207);
this.TxtFromCode.TabIndex = 30;
this.TxtFromCode.Text = "";
this.TxtFromCode.TextChanged += new System.EventHandler(this.TxtFromCode_TextChanged);
//
// FrmStrCount
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(836, 495);
this.Controls.Add(this.TxtFromCode);
this.Controls.Add(this.textEditorControl1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmStrCount";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "字符串统计";
this.ResumeLayout(false);
}
#endregion
private ICSharpCode.TextEditor.TextEditorControl textEditorControl1;
private ryProcessManager.hezuo.ContextMenuStripHighlightText contextMenuStripHighlightText1;
private ryPaiban.Model.MenuRight menuRight1;
private ryControls.Controls.RichTextBox2 TxtFromCode;
}
}
@@ -0,0 +1,36 @@
using ICSharpCode.TextEditor.Document;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmStrCount : DockContent
{
public FrmStrCount()
{
InitializeComponent();
textEditorControl1.IsReadOnly = true;
}
private void TxtFromCode_TextChanged(object sender, EventArgs e)
{
Manager.TotalCount totalCount = new Manager.TotalCount();
string fromText = TxtFromCode.Text;
int iCount = totalCount.GetByteLength(fromText, out int HanziCount, out int engCount, out int NumCount);
string resultStr = "";
resultStr = "字节数: " + iCount.ToString() + "个(汉字算两个字符)";
resultStr += "\r\n字数: " + fromText.Length.ToString() + "个(汉字算一个字符)";
resultStr += "\r\n汉字数: " + HanziCount.ToString() + "个(汉字算一个字符)";
resultStr += "\r\n英文数量: " + engCount.ToString() + "个";
resultStr += "\r\n数字数量: " + NumCount.ToString() + "个";
textEditorControl1.Text = resultStr;
}
}
}
@@ -0,0 +1,194 @@
<?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="contextMenuStripHighlightText1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>262, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAIBwAAAEAIACYDgAAFgAAACgAAAAgAAAAOAAAAAEAIAAAAAAAAA4AAKdrAACnawAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAA
AKAAAABbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAsAAAA7AAAANgAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAIAAACUAAAA/wAAAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADoAAAA2wAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAI4AAAD/AAAAfwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAOUAAADfAAAAJQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAB6AAAAYgAAAAIAAAAAAAAAiQAA
AP8AAACFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4AAACGAAAAHgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAArwAAAP8AAACvAAAABgAA
AAAAAAAoAAAA4gAAAOIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjwAAAP8AAADDAAAANAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAMwAAAD/AAAAtgAA
ACgAAAAAAAAAAAAAAAAAAACDAAAA/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAoAAA
AP8AAADdAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAFsAAADkAAAA/QAA
AJYAAAAVAAAAAAAAAAAAAAAAAAAAAAAAACQAAADeAAAA5gAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAALAAAAfgAAAPUAAADwAAAAcgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAB8AAAA8wAA
AO8AAABzAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAD/AAAAjwAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACAAAAXAAAAOMAAAD7AAAAlAAAABMAAAAAAAAAAAAAAAAAAAAAAAAASQAA
APoAAAD8AAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAANoAAADpAAAAMQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAPIAAAD/AAAAVgAAAAAAAAAAAAAAAAAA
AAAAAAAfAAAAuAAAAP8AAADGAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAA
AP8AAACVAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAACyAAAA/wAAAMwAAAAsAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAXAAAAmgAAAP4AAADhAAAAVwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAdAAAA1gAAAOwAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAA0QAAAP8AAACxAAAAJQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAeAAAAPMAAADzAAAAeAAAAAoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAByAAAA/wAAAJsAAAADAAAAAAAAAAAAAAAEAAAAYQAAAOgAAAD7AAAAjwAA
ABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAVgAAAOEAAAD/AAAAigAA
AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAADSAAAA7wAAADkAAAAAAAAAAAAAAG0AAAD5AAAA7gAA
AG0AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAA
AL8AAACXAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG0AAAD/AAAAoAAAAAQAAAAAAAAAfAAA
AMsAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAADgAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAM4AAADyAAAAPQAA
AAAAAAAIAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZwAA
AP8AAAClAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAUAAAAyQAAAPQAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABiAAAA/wAAAKsAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAADEAAAA9gAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAD/AAAAoQAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAH8AAABXAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H////A////wH///8B
////AP///wD///wAeD/4AHAf8AAwD+AAMAfAABABgAAQAYAACAGAMA4BgDgEAYAIAAGADAABwAwAA/AO
AAf4DgAf/A8AP///AP///4B///+Af///wH///8B////gf///4P8=
</value>
</data>
</root>
+158
View File
@@ -0,0 +1,158 @@
namespace 开发辅助工具.Tools
{
partial class FrmStrToCode
{
/// <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(FrmStrToCode));
this.RbStrToC = new System.Windows.Forms.RadioButton();
this.RbStrToJS = new System.Windows.Forms.RadioButton();
this.RbStrToQuickJS = new System.Windows.Forms.RadioButton();
this.textEditorControl1 = new ICSharpCode.TextEditor.TextEditorControl();
this.contextMenuStripHighlightText1 = new ryProcessManager.hezuo.ContextMenuStripHighlightText();
this.RbStrToASP = new System.Windows.Forms.RadioButton();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.TxtFromCode = new ryControls.Controls.RichTextBox2();
this.SuspendLayout();
//
// RbStrToC
//
this.RbStrToC.AutoSize = true;
this.RbStrToC.Checked = true;
this.RbStrToC.Location = new System.Drawing.Point(12, 216);
this.RbStrToC.Name = "RbStrToC";
this.RbStrToC.Size = new System.Drawing.Size(107, 16);
this.RbStrToC.TabIndex = 16;
this.RbStrToC.TabStop = true;
this.RbStrToC.Text = "字符串转C#代码";
this.RbStrToC.UseVisualStyleBackColor = true;
this.RbStrToC.CheckedChanged += new System.EventHandler(this.RbStrToC_CheckedChanged);
//
// RbStrToJS
//
this.RbStrToJS.AutoSize = true;
this.RbStrToJS.Location = new System.Drawing.Point(158, 216);
this.RbStrToJS.Name = "RbStrToJS";
this.RbStrToJS.Size = new System.Drawing.Size(107, 16);
this.RbStrToJS.TabIndex = 17;
this.RbStrToJS.Text = "字符串转JS代码";
this.RbStrToJS.UseVisualStyleBackColor = true;
this.RbStrToJS.CheckedChanged += new System.EventHandler(this.RbStrToJS_CheckedChanged);
//
// RbStrToQuickJS
//
this.RbStrToQuickJS.AutoSize = true;
this.RbStrToQuickJS.Location = new System.Drawing.Point(306, 216);
this.RbStrToQuickJS.Name = "RbStrToQuickJS";
this.RbStrToQuickJS.Size = new System.Drawing.Size(131, 16);
this.RbStrToQuickJS.TabIndex = 18;
this.RbStrToQuickJS.Text = "字符串转极速JS代码";
this.RbStrToQuickJS.UseVisualStyleBackColor = true;
this.RbStrToQuickJS.CheckedChanged += new System.EventHandler(this.RbStrToQuickJS_CheckedChanged);
//
// textEditorControl1
//
this.textEditorControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textEditorControl1.ContextMenuStrip = this.contextMenuStripHighlightText1;
this.textEditorControl1.IsReadOnly = false;
this.textEditorControl1.Location = new System.Drawing.Point(12, 238);
this.textEditorControl1.Name = "textEditorControl1";
this.textEditorControl1.Size = new System.Drawing.Size(812, 245);
this.textEditorControl1.TabIndex = 19;
//
// contextMenuStripHighlightText1
//
this.contextMenuStripHighlightText1.Name = "contextMenuStripHighlightText1";
this.contextMenuStripHighlightText1.Size = new System.Drawing.Size(101, 186);
//
// RbStrToASP
//
this.RbStrToASP.AutoSize = true;
this.RbStrToASP.Location = new System.Drawing.Point(477, 216);
this.RbStrToASP.Name = "RbStrToASP";
this.RbStrToASP.Size = new System.Drawing.Size(113, 16);
this.RbStrToASP.TabIndex = 21;
this.RbStrToASP.Text = "字符串转Asp代码";
this.RbStrToASP.UseVisualStyleBackColor = true;
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// TxtFromCode
//
this.TxtFromCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtFromCode.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtFromCode.DetectUrls = false;
this.TxtFromCode.EmptyText = "请填写待转换的内容";
this.TxtFromCode.ForeColor = System.Drawing.Color.Black;
this.TxtFromCode.Location = new System.Drawing.Point(12, 3);
this.TxtFromCode.Name = "TxtFromCode";
this.TxtFromCode.OnlyInputText = true;
this.TxtFromCode.Size = new System.Drawing.Size(812, 207);
this.TxtFromCode.TabIndex = 31;
this.TxtFromCode.Text = "";
this.TxtFromCode.TextChanged += new System.EventHandler(this.TxtFromCode_TextChanged);
this.TxtFromCode.DoubleClick += new System.EventHandler(this.TxtFromCode_DoubleClick);
//
// FrmStrToCode
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(836, 495);
this.Controls.Add(this.TxtFromCode);
this.Controls.Add(this.RbStrToASP);
this.Controls.Add(this.textEditorControl1);
this.Controls.Add(this.RbStrToQuickJS);
this.Controls.Add(this.RbStrToJS);
this.Controls.Add(this.RbStrToC);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmStrToCode";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "字符串转代码";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.RadioButton RbStrToC;
private System.Windows.Forms.RadioButton RbStrToJS;
private System.Windows.Forms.RadioButton RbStrToQuickJS;
private ICSharpCode.TextEditor.TextEditorControl textEditorControl1;
private ryProcessManager.hezuo.ContextMenuStripHighlightText contextMenuStripHighlightText1;
private System.Windows.Forms.RadioButton RbStrToASP;
private ryPaiban.Model.MenuRight menuRight1;
private ryControls.Controls.RichTextBox2 TxtFromCode;
}
}
@@ -0,0 +1,87 @@
using ICSharpCode.TextEditor.Document;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmStrToCode : DockContent
{
public FrmStrToCode()
{
InitializeComponent();
textEditorControl1.IsReadOnly = true;
}
private void Convert()
{
StringBuilder builder = new StringBuilder();
string format = "C#";
if (RbStrToC.Checked)
{
builder.Append(" StringBuilder sb = new StringBuilder();\r\n");
builder.Append(" sb.Append(\"" + TxtFromCode.Text.Trim().Replace("\"", "\\\"").Replace("\r\n", "\n").Replace("\n", "\");\r\n sb.Append(\"") + "\");");
format = "C#";
}
else if (RbStrToJS.Checked)
{
builder.Append("var sb=\"" + this.TxtFromCode.Text.Trim().Replace("\"", "\\\"").Replace("\r\n", "\n").Replace("\n", "\";\r\n sb=sb+\"") + "\";");
format = "JavaScript";
}
else if (RbStrToQuickJS.Checked)
{
builder.Append("var sb=\"" + this.TxtFromCode.Text.Trim().Replace("\"", "\\\"").Replace("\r\n", "\n").Replace("\n", "\";\r\n sb=sb+\"") + "\";");
builder = new StringBuilder(builder.ToString().Replace("script", "scr\"+\"ipt") + " document.write(sb);");
builder.Insert(0, "<script>\r\n");
builder.Append ("\r\n</script>");
format = "HTML";
}
else if (RbStrToASP.Checked)
{
builder.Append("sb=\"" + this.TxtFromCode.Text.Trim().Replace("\"", "\"\"").Replace("\r\n", "\n").Replace("\n", "\" & vbCrLf \r\nsb=sb & \"") + "\"");
format = "ASP/XHTML";
}
textEditorControl1.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy(format);
textEditorControl1.Text = builder.ToString();
}
private void RbStrToC_CheckedChanged(object sender, EventArgs e)
{
Convert();
}
private void RbStrToJS_CheckedChanged(object sender, EventArgs e)
{
Convert();
}
private void RbStrToQuickJS_CheckedChanged(object sender, EventArgs e)
{
Convert();
}
private void TxtFromCode_DoubleClick(object sender, EventArgs e)
{
ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
{
Icon = Icon
};
frm.richTextBox1.Text = txt.Text;
if (frm.ShowDialog() == DialogResult.OK)
{
txt.Text = frm.richTextBox1.Text;
}
}
private void TxtFromCode_TextChanged(object sender, EventArgs e)
{
Convert();
}
}
}
@@ -0,0 +1,194 @@
<?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="contextMenuStripHighlightText1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>262, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAIBwAAAEAIACYDgAAFgAAACgAAAAgAAAAOAAAAAEAIAAAAAAAAA4AAKdrAACnawAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAA
AKAAAABbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAsAAAA7AAAANgAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAIAAACUAAAA/wAAAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADoAAAA2wAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAI4AAAD/AAAAfwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAOUAAADfAAAAJQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAB6AAAAYgAAAAIAAAAAAAAAiQAA
AP8AAACFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4AAACGAAAAHgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAArwAAAP8AAACvAAAABgAA
AAAAAAAoAAAA4gAAAOIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjwAAAP8AAADDAAAANAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAMwAAAD/AAAAtgAA
ACgAAAAAAAAAAAAAAAAAAACDAAAA/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAoAAA
AP8AAADdAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAFsAAADkAAAA/QAA
AJYAAAAVAAAAAAAAAAAAAAAAAAAAAAAAACQAAADeAAAA5gAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAALAAAAfgAAAPUAAADwAAAAcgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAB8AAAA8wAA
AO8AAABzAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAD/AAAAjwAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACAAAAXAAAAOMAAAD7AAAAlAAAABMAAAAAAAAAAAAAAAAAAAAAAAAASQAA
APoAAAD8AAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAANoAAADpAAAAMQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAPIAAAD/AAAAVgAAAAAAAAAAAAAAAAAA
AAAAAAAfAAAAuAAAAP8AAADGAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAA
AP8AAACVAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAACyAAAA/wAAAMwAAAAsAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAXAAAAmgAAAP4AAADhAAAAVwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAdAAAA1gAAAOwAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAA0QAAAP8AAACxAAAAJQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAeAAAAPMAAADzAAAAeAAAAAoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAByAAAA/wAAAJsAAAADAAAAAAAAAAAAAAAEAAAAYQAAAOgAAAD7AAAAjwAA
ABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAVgAAAOEAAAD/AAAAigAA
AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAADSAAAA7wAAADkAAAAAAAAAAAAAAG0AAAD5AAAA7gAA
AG0AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAA
AL8AAACXAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG0AAAD/AAAAoAAAAAQAAAAAAAAAfAAA
AMsAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAADgAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAM4AAADyAAAAPQAA
AAAAAAAIAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZwAA
AP8AAAClAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAUAAAAyQAAAPQAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABiAAAA/wAAAKsAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAADEAAAA9gAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAD/AAAAoQAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAH8AAABXAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H////A////wH///8B
////AP///wD///wAeD/4AHAf8AAwD+AAMAfAABABgAAQAYAACAGAMA4BgDgEAYAIAAGADAABwAwAA/AO
AAf4DgAf/A8AP///AP///4B///+Af///wH///8B////gf///4P8=
</value>
</data>
</root>
+361
View File
@@ -0,0 +1,361 @@
namespace 开发辅助工具.Tools
{
partial class FrmTime
{
/// <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(FrmTime));
this.label1 = new System.Windows.Forms.Label();
this.TxtFromUnixTime = new ryControls.TextBoxEx2();
this.label2 = new System.Windows.Forms.Label();
this.TxtResultTime = new ryControls.TextBoxEx2();
this.label3 = new System.Windows.Forms.Label();
this.dateTimePickerEX1 = new ryControls.DateTimePickerEX();
this.TxtResultUnixTime = new ryControls.TextBoxEx2();
this.label4 = new System.Windows.Forms.Label();
this.TxtJSTime2 = new ryControls.TextBoxEx2();
this.label5 = new System.Windows.Forms.Label();
this.TxtJSTime1 = new ryControls.TextBoxEx2();
this.label6 = new System.Windows.Forms.Label();
this.TxtUnixTime3 = new ryControls.TextBoxEx2();
this.label7 = new System.Windows.Forms.Label();
this.TxtResultTime3 = new ryControls.TextBoxEx2();
this.label8 = new System.Windows.Forms.Label();
this.TxtFromJSTime3 = new ryControls.TextBoxEx2();
this.label9 = new System.Windows.Forms.Label();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(11, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 12);
this.label1.TabIndex = 0;
this.label1.Text = "Unix时间戳";
//
// TxtFromUnixTime
//
this.TxtFromUnixTime.BackColor = System.Drawing.Color.White;
this.TxtFromUnixTime.EmptyText = "请输入时间戳";
this.TxtFromUnixTime.Location = new System.Drawing.Point(13, 23);
this.TxtFromUnixTime.MaxLength = 999999999;
this.TxtFromUnixTime.Multiline = false;
this.TxtFromUnixTime.Name = "TxtFromUnixTime";
this.TxtFromUnixTime.OnlyNumeric = false;
this.TxtFromUnixTime.PasswordChar = '\0';
this.TxtFromUnixTime.ReadOnly = false;
this.TxtFromUnixTime.SelectedText = "";
this.TxtFromUnixTime.SelectionLength = 0;
this.TxtFromUnixTime.SelectionStart = 0;
this.TxtFromUnixTime.Size = new System.Drawing.Size(277, 30);
this.TxtFromUnixTime.TabIndex = 1;
this.TxtFromUnixTime.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtFromUnixTime.ToolTip = "";
this.TxtFromUnixTime.TextChanged2 += new System.EventHandler(this.TxtFromUnixTime_TextChanged2);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(294, 9);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(53, 12);
this.label2.TabIndex = 2;
this.label2.Text = "具体时间";
//
// TxtResultTime
//
this.TxtResultTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtResultTime.EmptyText = "";
this.TxtResultTime.Location = new System.Drawing.Point(296, 23);
this.TxtResultTime.MaxLength = 999999999;
this.TxtResultTime.Multiline = false;
this.TxtResultTime.Name = "TxtResultTime";
this.TxtResultTime.OnlyNumeric = false;
this.TxtResultTime.PasswordChar = '\0';
this.TxtResultTime.ReadOnly = true;
this.TxtResultTime.SelectedText = "";
this.TxtResultTime.SelectionLength = 0;
this.TxtResultTime.SelectionStart = 0;
this.TxtResultTime.Size = new System.Drawing.Size(243, 30);
this.TxtResultTime.TabIndex = 3;
this.TxtResultTime.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtResultTime.ToolTip = "";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(11, 56);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(53, 12);
this.label3.TabIndex = 4;
this.label3.Text = "具体时间";
//
// dateTimePickerEX1
//
this.dateTimePickerEX1.CustomFormat = "yyyy年MM月dd日 dddd HH:mm:ss";
this.dateTimePickerEX1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dateTimePickerEX1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dateTimePickerEX1.Location = new System.Drawing.Point(13, 75);
this.dateTimePickerEX1.Name = "dateTimePickerEX1";
this.dateTimePickerEX1.Size = new System.Drawing.Size(277, 23);
this.dateTimePickerEX1.TabIndex = 5;
this.dateTimePickerEX1.ValueChanged += new System.EventHandler(this.DateTimePickerEX1_ValueChanged);
//
// TxtResultUnixTime
//
this.TxtResultUnixTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtResultUnixTime.EmptyText = "";
this.TxtResultUnixTime.Location = new System.Drawing.Point(296, 71);
this.TxtResultUnixTime.MaxLength = 999999999;
this.TxtResultUnixTime.Multiline = false;
this.TxtResultUnixTime.Name = "TxtResultUnixTime";
this.TxtResultUnixTime.OnlyNumeric = false;
this.TxtResultUnixTime.PasswordChar = '\0';
this.TxtResultUnixTime.ReadOnly = true;
this.TxtResultUnixTime.SelectedText = "";
this.TxtResultUnixTime.SelectionLength = 0;
this.TxtResultUnixTime.SelectionStart = 0;
this.TxtResultUnixTime.Size = new System.Drawing.Size(243, 30);
this.TxtResultUnixTime.TabIndex = 7;
this.TxtResultUnixTime.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtResultUnixTime.ToolTip = "";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(294, 57);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(65, 12);
this.label4.TabIndex = 6;
this.label4.Text = "Unix时间戳";
//
// TxtJSTime2
//
this.TxtJSTime2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtJSTime2.EmptyText = "";
this.TxtJSTime2.Location = new System.Drawing.Point(545, 71);
this.TxtJSTime2.MaxLength = 999999999;
this.TxtJSTime2.Multiline = false;
this.TxtJSTime2.Name = "TxtJSTime2";
this.TxtJSTime2.OnlyNumeric = false;
this.TxtJSTime2.PasswordChar = '\0';
this.TxtJSTime2.ReadOnly = true;
this.TxtJSTime2.SelectedText = "";
this.TxtJSTime2.SelectionLength = 0;
this.TxtJSTime2.SelectionStart = 0;
this.TxtJSTime2.Size = new System.Drawing.Size(243, 30);
this.TxtJSTime2.TabIndex = 11;
this.TxtJSTime2.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtJSTime2.ToolTip = "";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(543, 57);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 12);
this.label5.TabIndex = 10;
this.label5.Text = "JS时间戳";
//
// TxtJSTime1
//
this.TxtJSTime1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtJSTime1.EmptyText = "";
this.TxtJSTime1.Location = new System.Drawing.Point(545, 23);
this.TxtJSTime1.MaxLength = 999999999;
this.TxtJSTime1.Multiline = false;
this.TxtJSTime1.Name = "TxtJSTime1";
this.TxtJSTime1.OnlyNumeric = false;
this.TxtJSTime1.PasswordChar = '\0';
this.TxtJSTime1.ReadOnly = true;
this.TxtJSTime1.SelectedText = "";
this.TxtJSTime1.SelectionLength = 0;
this.TxtJSTime1.SelectionStart = 0;
this.TxtJSTime1.Size = new System.Drawing.Size(243, 30);
this.TxtJSTime1.TabIndex = 9;
this.TxtJSTime1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtJSTime1.ToolTip = "";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(543, 9);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(53, 12);
this.label6.TabIndex = 8;
this.label6.Text = "JS时间戳";
//
// TxtUnixTime3
//
this.TxtUnixTime3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtUnixTime3.EmptyText = "";
this.TxtUnixTime3.Location = new System.Drawing.Point(545, 120);
this.TxtUnixTime3.MaxLength = 999999999;
this.TxtUnixTime3.Multiline = false;
this.TxtUnixTime3.Name = "TxtUnixTime3";
this.TxtUnixTime3.OnlyNumeric = false;
this.TxtUnixTime3.PasswordChar = '\0';
this.TxtUnixTime3.ReadOnly = true;
this.TxtUnixTime3.SelectedText = "";
this.TxtUnixTime3.SelectionLength = 0;
this.TxtUnixTime3.SelectionStart = 0;
this.TxtUnixTime3.Size = new System.Drawing.Size(243, 30);
this.TxtUnixTime3.TabIndex = 17;
this.TxtUnixTime3.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtUnixTime3.ToolTip = "";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(543, 106);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(65, 12);
this.label7.TabIndex = 16;
this.label7.Text = "Unix时间戳";
//
// TxtResultTime3
//
this.TxtResultTime3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.TxtResultTime3.EmptyText = "";
this.TxtResultTime3.Location = new System.Drawing.Point(296, 120);
this.TxtResultTime3.MaxLength = 999999999;
this.TxtResultTime3.Multiline = false;
this.TxtResultTime3.Name = "TxtResultTime3";
this.TxtResultTime3.OnlyNumeric = false;
this.TxtResultTime3.PasswordChar = '\0';
this.TxtResultTime3.ReadOnly = true;
this.TxtResultTime3.SelectedText = "";
this.TxtResultTime3.SelectionLength = 0;
this.TxtResultTime3.SelectionStart = 0;
this.TxtResultTime3.Size = new System.Drawing.Size(243, 30);
this.TxtResultTime3.TabIndex = 15;
this.TxtResultTime3.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtResultTime3.ToolTip = "";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(294, 106);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(53, 12);
this.label8.TabIndex = 14;
this.label8.Text = "具体时间";
//
// TxtFromJSTime3
//
this.TxtFromJSTime3.BackColor = System.Drawing.Color.White;
this.TxtFromJSTime3.EmptyText = "请输入时间戳";
this.TxtFromJSTime3.Location = new System.Drawing.Point(13, 120);
this.TxtFromJSTime3.MaxLength = 999999999;
this.TxtFromJSTime3.Multiline = false;
this.TxtFromJSTime3.Name = "TxtFromJSTime3";
this.TxtFromJSTime3.OnlyNumeric = false;
this.TxtFromJSTime3.PasswordChar = '\0';
this.TxtFromJSTime3.ReadOnly = false;
this.TxtFromJSTime3.SelectedText = "";
this.TxtFromJSTime3.SelectionLength = 0;
this.TxtFromJSTime3.SelectionStart = 0;
this.TxtFromJSTime3.Size = new System.Drawing.Size(277, 30);
this.TxtFromJSTime3.TabIndex = 13;
this.TxtFromJSTime3.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtFromJSTime3.ToolTip = "";
this.TxtFromJSTime3.TextChanged2 += new System.EventHandler(this.TxtFromJSTime3_TextChanged2);
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(11, 105);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(53, 12);
this.label9.TabIndex = 12;
this.label9.Text = "JS时间戳";
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// FrmTime
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.TxtUnixTime3);
this.Controls.Add(this.label7);
this.Controls.Add(this.TxtResultTime3);
this.Controls.Add(this.label8);
this.Controls.Add(this.TxtFromJSTime3);
this.Controls.Add(this.label9);
this.Controls.Add(this.TxtJSTime2);
this.Controls.Add(this.label5);
this.Controls.Add(this.TxtJSTime1);
this.Controls.Add(this.label6);
this.Controls.Add(this.TxtResultUnixTime);
this.Controls.Add(this.label4);
this.Controls.Add(this.dateTimePickerEX1);
this.Controls.Add(this.label3);
this.Controls.Add(this.TxtResultTime);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtFromUnixTime);
this.Controls.Add(this.label1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmTime";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "时间戳转换";
this.Load += new System.EventHandler(this.FrmTime_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private ryControls.TextBoxEx2 TxtFromUnixTime;
private System.Windows.Forms.Label label2;
private ryControls.TextBoxEx2 TxtResultTime;
private System.Windows.Forms.Label label3;
private ryControls.DateTimePickerEX dateTimePickerEX1;
private ryControls.TextBoxEx2 TxtResultUnixTime;
private System.Windows.Forms.Label label4;
private ryControls.TextBoxEx2 TxtJSTime2;
private System.Windows.Forms.Label label5;
private ryControls.TextBoxEx2 TxtJSTime1;
private System.Windows.Forms.Label label6;
private ryControls.TextBoxEx2 TxtUnixTime3;
private System.Windows.Forms.Label label7;
private ryControls.TextBoxEx2 TxtResultTime3;
private System.Windows.Forms.Label label8;
private ryControls.TextBoxEx2 TxtFromJSTime3;
private System.Windows.Forms.Label label9;
private ryPaiban.Model.MenuRight menuRight1;
}
}
@@ -0,0 +1,48 @@
using ryCommon;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmTime : DockContent
{
public FrmTime()
{
InitializeComponent();
dateTimePickerEX1.Value = DateTime.Now.Date;
}
private void FrmTime_Load(object sender, EventArgs e)
{
}
private void TxtFromUnixTime_TextChanged2(object sender, EventArgs e)
{
var dt =RyDate.UnixTimeToDateTime(TxtFromUnixTime.Text);
TxtResultTime.Text = dt.ToString("yyyy-MM-dd dddd HH:mm:ss");
TxtJSTime1.Text = RyDate.DateTimeToJSTime(dt).ToString();
}
private void DateTimePickerEX1_ValueChanged(object sender, EventArgs e)
{
TxtResultUnixTime.Text = RyDate.DateTimeToUnixTime(dateTimePickerEX1.Value).ToString();
TxtJSTime2.Text = RyDate.DateTimeToJSTime(dateTimePickerEX1.Value).ToString();
}
private void TxtFromJSTime3_TextChanged2(object sender, EventArgs e)
{
var dt = RyDate.JSTimeToDateTime(TxtFromJSTime3.Text);
TxtResultTime3.Text = dt.ToString("yyyy-MM-dd dddd HH:mm:ss");
TxtUnixTime3.Text = RyDate.DateTimeToUnixTime(dt).ToString();
}
}
}
@@ -0,0 +1,200 @@
<?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="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAGDqAABg6gAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAA
ACcAAABMAAAAaQAAAHgAAAB4AAAAaAAAAEwAAAAnAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAA
AGkAAAC2AAAA5QAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA+QAAAOYAAAC4AAAAaQAAABwAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAA
AGcAAADSAAAA/gAAAP8AAAD/AAAA/wAAAPkAAADzAAAA8wAAAPkAAAD/AAAA/wAAAP8AAAD+AAAA0wAA
AGgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ACMAAACpAAAA+wAAAP8AAAD/AAAA4wAAAKcAAABvAAAASwAAADkAAAA5AAAASwAAAG8AAACoAAAA4wAA
AP8AAAD/AAAA+wAAAKgAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAuAAAAxwAAAP8AAAD/AAAA5QAAAIQAAAApAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAQAAAApAAAAgwAAAOUAAAD/AAAA/wAAAMcAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAIwAAAMcAAAD/AAAA/wAAAL4AAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAL0AAAD/AAAA/wAAAMcAAAAjAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAwAAACpAAAA/wAAAP8AAACsAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAKwAAAD/AAAA/wAAAKkAAAAMAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAPsAAAD/AAAAvQAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAL0AAAD/AAAA+wAA
AGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAADTAAAA/wAAAOUAAAA3AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAA
AOUAAAD/AAAA0gAAABwAAAAAAAAAAAAAAAAAAAAAAAAAaQAAAP4AAAD/AAAAgwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAhAAAAP8AAAD+AAAAaQAAAAAAAAAAAAAAAAAAAAkAAAC3AAAA/wAAAOMAAAApAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAApAAAA4wAAAP8AAAC3AAAACQAAAAAAAAAAAAAAKAAAAOYAAAD/AAAAqAAA
AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACoAAAA/wAAAOUAAAAnAAAAAAAAAAAAAABMAAAA+QAA
AP8AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8AAAD/AAAA+QAAAEwAAAAAAAAAAAAA
AGkAAAD/AAAA+QAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAVwAA
AFgAAABXAAAAVwAAAFcAAABXAAAAWQAAADIAAAAAAAAAAAAAAAAAAAAAAAAASwAAAPkAAAD/AAAAaAAA
AAAAAAAAAAAAeAAAAP8AAADzAAAAOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AFcAAAD6AAAA/QAAAP0AAAD9AAAA/QAAAP0AAAD/AAAAkQAAAAAAAAAAAAAAAAAAAAAAAAA5AAAA8wAA
AP8AAAB3AAAAAAAAAAAAAAB4AAAA/wAAAPMAAAA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAWAAAAP0AAAD/AAAA/gAAAP0AAAD9AAAA/QAAAP8AAACRAAAAAAAAAAAAAAAAAAAAAAAA
ADkAAADzAAAA/wAAAHcAAAAAAAAAAAAAAGkAAAD/AAAA+QAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABXAAAA/QAAAP4AAACRAAAAVQAAAFcAAABXAAAAWQAAADIAAAAAAAAAAAAA
AAAAAAAAAAAASwAAAPkAAAD/AAAAaAAAAAAAAAAAAAAATAAAAPkAAAD/AAAAbwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcAAAD9AAAA/QAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABvAAAA/wAAAPkAAABMAAAAAAAAAAAAAAAoAAAA5gAAAP8AAACoAAAABAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVwAAAP0AAAD9AAAAVwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAKgAAAD/AAAA5QAAACcAAAAAAAAAAAAAAAkAAAC3AAAA/wAA
AOMAAAApAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXAAAA/QAAAP0AAABXAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAAAA4wAAAP8AAAC3AAAACQAAAAAAAAAAAAAAAAAA
AGoAAAD+AAAA/wAAAIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcAAAD9AAAA/QAA
AFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMAAAD/AAAA/gAAAGkAAAAAAAAAAAAA
AAAAAAAAAAAAHAAAANMAAAD/AAAA5QAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAA
AP8AAAD/AAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAA5QAAAP8AAADSAAAAHAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAPsAAAD/AAAAvQAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABIAAAA0AAAANAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAL0AAAD/AAAA+wAA
AGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAqgAAAP8AAAD/AAAArAAAABoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAYAAAASAAAAEgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAACsAAAA/wAA
AP8AAACpAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAxwAAAP8AAAD/AAAAvQAA
ADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAvQAA
AP8AAAD/AAAAxwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAxwAA
AP8AAAD/AAAA5QAAAIMAAAApAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAApAAAAgwAA
AOUAAAD/AAAA/wAAAMcAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAkAAAAqgAAAPsAAAD/AAAA/wAAAOMAAACoAAAAbwAAAEsAAAA5AAAAOQAAAEsAAABvAAAAqAAA
AOMAAAD/AAAA/wAAAPsAAACpAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAMAAAAaAAAANMAAAD+AAAA/wAAAP8AAAD/AAAA+QAAAPMAAADzAAAA+QAA
AP8AAAD/AAAA/wAAAP4AAADTAAAAaAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAGkAAAC3AAAA5gAAAPkAAAD/AAAA/wAA
AP8AAAD/AAAA+QAAAOYAAAC4AAAAaQAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAoAAAATAAA
AGkAAAB4AAAAeAAAAGkAAABMAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/4AB//4AAH/4AAAf8AAAD+AAAAfAAAADwAGAA4AP8AGAH/gBAD/8AAB/
/gAA//8AAf//gAH4AAAB+AAAA/gAQAP4AEAB+AAAAfgAAAH4H4AA+B8AAHgeAAA4HACAGBgBgAgQAcAA
AAPAAAAD4AAAB/AAAA/4AAAf/gAAf/+AAf8=
</value>
</data>
</root>
+87
View File
@@ -0,0 +1,87 @@
namespace 开发辅助工具.Tools
{
partial class FrmToolsBox
{
/// <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(FrmToolsBox));
this.BtnJson = new ryControls.ButtonEx();
this.BtnCalc = new ryControls.ButtonEx();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.SuspendLayout();
//
// BtnJson
//
this.BtnJson.ForeColor = System.Drawing.Color.White;
this.BtnJson.Location = new System.Drawing.Point(12, 12);
this.BtnJson.Name = "BtnJson";
this.BtnJson.Size = new System.Drawing.Size(99, 34);
this.BtnJson.TabIndex = 2;
this.BtnJson.Text = "Json查看器";
this.BtnJson.UseVisualStyleBackColor = true;
this.BtnJson.Click += new System.EventHandler(this.BtnJson_Click);
//
// BtnCalc
//
this.BtnCalc.ForeColor = System.Drawing.Color.White;
this.BtnCalc.Location = new System.Drawing.Point(117, 12);
this.BtnCalc.Name = "BtnCalc";
this.BtnCalc.Size = new System.Drawing.Size(99, 34);
this.BtnCalc.TabIndex = 3;
this.BtnCalc.Text = "计算器";
this.BtnCalc.UseVisualStyleBackColor = true;
this.BtnCalc.Click += new System.EventHandler(this.BtnCalc_Click);
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(185, 70);
this.menuRight1.SourceContent = this;
//
// FrmToolsBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.BtnCalc);
this.Controls.Add(this.BtnJson);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmToolsBox";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "工具大全";
this.ResumeLayout(false);
}
#endregion
private ryControls.ButtonEx BtnJson;
private ryControls.ButtonEx BtnCalc;
private ryPaiban.Model.MenuRight menuRight1;
}
}
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmToolsBox : DockContent
{
public FrmToolsBox()
{
InitializeComponent();
}
private void BtnJson_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.OpenFile(Application.StartupPath + "\\SysDb\\Tools\\Json\\HiJson 2.1.2_jdk64.exe");
}
private void BtnCalc_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.OpenFile("calc.exe");
}
}
}
@@ -0,0 +1,200 @@
<?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="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAKAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA
AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACwAAAAcAAAACAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAgEBAAAAAAcAAAAcAgICPQUFBFYGBQVdBgUFXQYFBV0GBQVdBgUFXQYF
BV0GBQVdBgUFXQYFBV0GBQVdBgUFXQYFBV0GBQVdBgUFXQYFBV0GBQVdBgUFXQYFBV0GBQVaBAMDSQAA
ACkAAAAOAAAAAgAAAAAAAAAAAAAAAAMCAgAAAAALAwICOA0MDIsTEhHLFhQT5RYUE+oWFBPqFhQT6hYU
E+oWFBPqFhQT6hYUE+oWFBPqFhQT6hYUE+oWFBPqFhQT6hYUE+oWFBPqFhQT6hYUE+oWFBPqFhQT6hYU
E+kVExLZEA8OqgcGBlgAAAAYAAAAAgAAAAAAAAAAAAAABgQEAzcSEBCvGRYV+BoXFv8aFxb/GhcW/xoX
Fv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoX
Fv8aFxb/GhcW/xoXFv8aFxb/FhMT2AsJCWQAAAASAAAAAAAAAAAAAAAYERAPkRkXFvsaGBf/GhcW/xoX
Fv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoX
Fv8aFxb/GhcW/xoXFv8aFxb/GhcW/xoYF/8aGBf/FhQTzgcGBj0AAAAFAAAAAgkICDsYFhXaGxgX/xsY
F/8bGBf/GxgX/xsYF/8bGBf/GxgX/xsYF/8bGBf/GxgX/xsYF/8bGBf/GxgX/xsYF/8bGBf/GxgX/xsY
F/8bGBf/GxgX/xsYF/8bGBf/GxgX/xsYF/8bGBf/GxgX/xsYF/8aGBf7EhAPfwAAAA0AAAAFEA8OYBsY
F/QcGRj/HBkY/xwZGP8cGRj/HBkY/xwZGP8cGRj/HBkY/xwZGP8cGRj/HBkY/xwZGP8cGRj/HBkY/xwZ
GP8cGRj/HBkY/xwZGP8cGRj/HBkY/xwZGP8cGRj/HBkY/xwZGP8cGRj/HBkY/xwZGP8XFBSpAAAAGQAA
AAYTERFuHBkY+B0aGf8cGRn/HBkZ/xwZGf8cGRn/HBkZ/xwZGf8cGRn/HBkZ/xwZGf8cGRn/HBkZ/xwZ
Gf8cGRn/HBkZ/xwZGf8cGRn/HBkZ/xwZGf8cGRn/HBkZ/xwZGf8cGRn/HBkZ/xwZGf8cGRn/HRoZ/xgW
FboFBQUhAAAABhQSEW8dGhn4Hhsa/x4bGf8eGxn/HhsZ/x4bGf8eGxn/HhsZ/x4bGf8eGxn/HhsZ/x4b
Gf8eGxn/HhsZ/x4bGf8eGxn/HhsZ/x4bGf8eGxn/HhsZ/x4bGf8eGxn/HhsZ/x4bGf8eGxn/HhsZ/x4b
Gf8eGxr/GRcWvAYGBSIAAAAGFBISbx4bGvgfHBv/Hxwb/x8cG/8fHBv/Hxwb/x8cG/8fHBv/Hxwb/x8c
G/8fHBv/Hxwb/x8cG/8fHBv/Hxwb/x8cG/8fHBv/Hxwb/x8cG/8fHBv/Hxwb/x8cG/8fHBv/Hxwb/x8c
G/8fHBv/Hxwb/x8cG/8aGBe8BgYGIgAAAAYVExJvHxwb+CAdHP8fHBv/IB0c/yAdHP8gHRz/IB0c/yAc
G/8gHRz/IB0c/yAdHP8gHRz/IB0c/yAdHP8gHRz/IB0c/yAdHP8gHRz/IB0c/yAdHP8gHRz/IB0c/yAd
HP8gHRz/IB0c/yAdHP8fHBv/IB0c/xsYGLwHBgYiAAAABhYUE28gHRz4IR4d/yEeHf8hHh3/IB0c/x4c
G/8gHRz/IR4d/yAdHP8fHBv/HRwa/x4cG/8gHRz/IB4d/yAdHP8eHBv/HRwa/x8dG/8gHRz/Hx0b/x8d
G/8gHRz/Hhwb/x4cGv8fHRz/IB0c/yEeHf8hHh3/HBkYvAcGBiIAAAAGFhQUbyEeHfgiHx7/Ih8e/yEe
Hf8jHR7/Lx4m/yEdHf8hHh3/Hhwb/yYbH/83Hyv/Lx4m/x4bGv8fHRv/Hhsb/zAeJv82Hyr/JBse/x0b
Gv8nHSD/KR0i/yEcHP8yHyj/NR8p/yIbHf8fHRz/Ih8e/yIfHv8dGhm8BwYGIgAAAAYXFRRvIh8e+CMg
H/8jIB//IB4d/0QlNP+5RID/MyEp/x4dG/86Iiz/mj1s/4U3Yf+TPGn/ZC1H/x8aGv9vME7/mT5t/4Q3
YP+POmX/Lx4l/3AwUP+CNVz/Rig2/303XP+JN2P/fzVa/yUeH/8iHx7/IyAf/x4bGrwIBwYiAAAABhgW
FW8jIB/4JCEg/yQhIP8hHx7/Sik0/85Tgf82JCn/Hh0b/4o+WP+lSGv/Ih8e/00rOP/CUHr/USk2/8dS
fv9QLTr/Ih4e/59FZ/+DOlP/fThR/5JAXv8mHyD/JR4f/08qNf+9UHn/MyQo/yIgH/8kISD/HxwbvAgH
ByIAAAAGGRYWbyQhIPglIiH/JSIh/yIgH/9LLDD/zV5w/zcmKP8iHx7/o09c/4xGUP8cHBr/MyQl/8ld
bv97Pkf/zF9w/zYlJ/8bHBr/hUNM/6VPXP+DQUr/kUdS/yYeHf+CQ0n/rFhm/3JAS/8nIiL/JSEg/yUi
If8gHRy8CAcHIgAAAAYaFxZvJSIh+CYjIv8mIyL/IyEg/0swLP/Na13/OCgm/yIgH/+HTkj/pFpO/yAc
Gv9JLyn/yWxf/1k3Nf/DaV7/UTIs/x0bGf+fV0v/jVBJ/39HP/+PT0X/VjYw/7NhV/86KSj/LCQh/yYi
If8mIiL/JiMi/yEeHbwICAciAAAABhoYF28mIyL4JyQj/yYjIv8hICD/STIn/812S/82KSP/ISAg/zsu
Kf+UXkf/hFU6/5hgRP99UkD/KSQi/2pIOv+WX0T/g1Q5/6FlS/9BMCv/f042/5FYO/87LSf/mGBG/39S
Of9nRDP/KSQj/yckI/8nJCP/Ih8evAgICCIAAAAGGxkYbyckI/goJST/KyYj/zotIf9hRCf/1olB/1A6
JP84LSH/KCQi/y8pJv9CMyv/PTEq/ysnJf8oJST/KCUk/zovKf9CMyv/Mywo/yIhIf+DVy//lWEy/yMh
If80LCj/QTMr/zApJv8oJST/KCUk/yklJP8jIB+8CQgIIgAAAAYcGhlvKSUk+CkmJf84Lib/dFIr/4Bb
Mv+OZzv/flow/2tNKv8vKSX/KCUl/yglJf8oJSX/KSYl/yomJf8pJiX/KCUl/yglJf8pJiX/JSMk/3hX
MP+JYjP/JiQk/yklJf8oJSX/KSYl/yomJf8qJiX/KiYl/yQhILwJCAgiAAAABhwaGm8pJiX4Kycm/yon
Jv8oJSb/JyUl/yYkJf8nJSX/KCYm/yonJv8rJyb/Kicm/ysnJv8rJyb/Kycm/ysnJv8rJyb/Kycm/ysn
Jv8qJyb/My0o/zYvKf8qJyb/Kicm/ysnJv8rJyb/Kycm/ysnJv8rJyb/JSIhvAkICCIAAAAGHRsabyon
JvgsKCf/LCgn/ywoJ/8sKCf/LCgn/ywoJ/8sKCf/LCgn/ysoJ/8sKCf/LCgn/ywoJ/8sKCf/LCgn/ywo
J/8sKCf/Kygn/ywoJ/8rKCf/Kycn/ywoJ/8sKCf/LCgn/ywoJ/8sKCf/LCgn/ywoJ/8lIiK8CQkIIgAA
AAYeGxtvKygn+C0pKP8tKSj/LSko/y0pKP8tKSj/LSko/y0pKP8tKSj/LSko/y0pKP8tKSj/LSko/y0p
KP8tKSj/LSko/y0pKP8tKSj/LSko/y0pKP8tKSj/LSko/y0pKP8tKSj/LSko/y0pKP8tKSj/LSko/yYj
IrwKCQkiAAAABh4cG28sKSj4Liop/y4qKf8uKin/Liop/y4qKf8uKin/Liop/y4qKf8uKin/Liop/y4q
Kf8uKin/Liop/y4qKf8uKin/Liop/y4qKf8uKin/Liop/y4qKf8uKin/Liop/y4qKf8uKin/Liop/y4q
Kf8uKin/JyQjvAoJCSIAAAAGHx0cby0qKfgvKyr/Lysq/y8rKv8vKyr/Lysq/y8rKv8vKyr/Lysq/y8r
Kv8vKyr/Lysq/y8rKv8vKyr/Lysq/y8rKv8vKyr/Lysq/y8rKv8vKyr/Lysq/y8rKv8vKyr/Lysq/y8r
Kv8vKyr/Lisq/y8rKv8oJSS8CgkJIgAAAAUhHh5sLysq+DAsK/8wKyr/MCsq/zArKv8wKyr/MCsq/zAr
Kv8wKyr/MCsq/zArKv8wKyr/MCsq/zArKv8wKyr/MCsq/zArKv8wKyr/MCsq/zArKv8wKyr/MCsq/zAr
Kv8wKyr/MCsq/zArKv8vKyr/MCwr/ysnJrcLCgoeAAAAASUiIlcyLy7zMC0s/zAtLP8wLSz/MC0s/zAt
LP8wLSz/MC0s/zAtLP8wLSz/MC0s/zAtLP8wLSz/MC0s/zAtLP8wLSz/MC0s/zAtLP8wLSz/MC0s/zAt
LP8wLSz/MC0s/zAtLP8wLSz/MC0s/zAsK/8yLi3/LisqowAAARGnnpsAIB8eKTg1NNUzLy7/MS0s/zEt
LP8xLSz/MS0s/zEtLP8xLSz/MS0s/zEtLP8xLSz/MS0s/zEtLP8xLSz/MS0s/zEtLP8xLSz/MS0s/zEt
LP8xLSz/MS0s/zEtLP8xLSz/MS0s/zEtLP8xLSz/MS0s/zg0M/syLy5vAAAAAyMiIQAAAAAHPDk4fDw5
OPoyLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIu
Lf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zEtLP83MzL/QD08wygmJiTUycYAAAAAAM7G
wwAtKyoXSEVElkE+PfY3MzL/My8u/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIu
Lf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf8yLi3/Mi4t/zIuLf80MTD/PDk4/0dEQ8w/PTxBAAAAAhQU
EwAAAAAAAAAAANjS0AA1NDQRUE5NYk9MTLNLSEfaSkdG5EpGReRKRkXkSkZF5EpGReRKRkXkSkZF5EpG
ReRKRkXkSkZF5EpGReRKRkXkSkZF5EpGReRKRkXkSkZF5EpGReRKRkXkS0dG4E1KScpRTk6JRkRELAAA
AAI1MzMAAAAAAAAAAAANCwsAAAAAAGhmZgAAAAAASkhHEldVVCNZV1YoWFZVKFhWVShYVlUoWFZVKFhW
VShYVlUoWFZVKFhWVShYVlUoWFZVKFhWVShYVlUoWFZVKFhWVShYVlUoWFZVKFlWVihYVlUmU1FQGyQj
IwaalpUAHh4eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
</value>
</data>
</root>
+910
View File
@@ -0,0 +1,910 @@
namespace 开发辅助工具.Tools
{
partial class FrmWebGet
{
/// <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(FrmWebGet));
this.ChkUrlLower = new System.Windows.Forms.CheckBox();
this.tabControl2 = new System.Windows.Forms.TabControl();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.RichHtml = new System.Windows.Forms.RichTextBox();
this.contextMenuStripRichText1 = new ryProcessManager.hezuo.ContextMenuStripRichText();
this.tabPage12 = new System.Windows.Forms.TabPage();
this.Te_Format = new ICSharpCode.TextEditor.TextEditorControl();
this.contextMenuStripHighlightText1 = new ryProcessManager.hezuo.ContextMenuStripHighlightText();
this.tabPage4 = new System.Windows.Forms.TabPage();
this.RichCookie = new System.Windows.Forms.RichTextBox();
this.tabPage5 = new System.Windows.Forms.TabPage();
this.RichStatus = new System.Windows.Forms.RichTextBox();
this.tabPage6 = new System.Windows.Forms.TabPage();
this.RichHeader = new System.Windows.Forms.RichTextBox();
this.tabPreview = new System.Windows.Forms.TabPage();
this.extendedWebBrowser1 = new ExtendedWebBrowser2.ExtendedWebBrowser();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.TxtPost = new ryControls.Controls.RichTextBox2();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.TxtCookie = new ryControls.Controls.RichTextBox2();
this.tabPage7 = new System.Windows.Forms.TabPage();
this.TxtInputHeader = new ryControls.Controls.RichTextBox2();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.CbbReferer = new ryControls.RyComboBox();
this.CbbIp = new ryControls.RyComboBox();
this.label6 = new System.Windows.Forms.Label();
this.CbbUserAgent = new ryControls.RyComboBox();
this.label7 = new System.Windows.Forms.Label();
this.CbbContentType = new ryControls.RyComboBox();
this.label11 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.ChkNoPreview = new System.Windows.Forms.CheckBox();
this.ChkHtmlPreview = new System.Windows.Forms.CheckBox();
this.ChkGetPic = new System.Windows.Forms.CheckBox();
this.ChkJump = new System.Windows.Forms.CheckBox();
this.CbbWriteTimeout = new ryControls.RyComboBox();
this.label5 = new System.Windows.Forms.Label();
this.CbbTimeout = new ryControls.RyComboBox();
this.label4 = new System.Windows.Forms.Label();
this.CbbEncoding = new ryControls.RyComboBox();
this.label3 = new System.Windows.Forms.Label();
this.BtnRunHtml = new ryControls.ButtonEx();
this.RbPost = new System.Windows.Forms.RadioButton();
this.RbGet = new System.Windows.Forms.RadioButton();
this.TxtUrl = new ryControls.TextBoxEx2();
this.label2 = new System.Windows.Forms.Label();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.BtnCtreateCShape = new ryControls.ButtonEx();
this.columnModel1 = new XPTable.Models.ColumnModel();
this.ColUrl = new XPTable.Models.TextColumn();
this.ColTitle = new XPTable.Models.TextColumn();
this.tableModel1 = new XPTable.Models.TableModel();
this.table1 = new XPTable.Models.Table();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.tabControl2.SuspendLayout();
this.tabPage3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.tabPage12.SuspendLayout();
this.tabPage4.SuspendLayout();
this.tabPage5.SuspendLayout();
this.tabPage6.SuspendLayout();
this.tabPreview.SuspendLayout();
this.groupBox3.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage7.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.SuspendLayout();
//
// ChkUrlLower
//
this.ChkUrlLower.AutoSize = true;
this.ChkUrlLower.Location = new System.Drawing.Point(630, 10);
this.ChkUrlLower.Name = "ChkUrlLower";
this.ChkUrlLower.Size = new System.Drawing.Size(72, 16);
this.ChkUrlLower.TabIndex = 109;
this.ChkUrlLower.Text = "全转小写";
this.ChkUrlLower.UseVisualStyleBackColor = true;
//
// tabControl2
//
this.tabControl2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControl2.Controls.Add(this.tabPage3);
this.tabControl2.Controls.Add(this.tabPage12);
this.tabControl2.Controls.Add(this.tabPage4);
this.tabControl2.Controls.Add(this.tabPage5);
this.tabControl2.Controls.Add(this.tabPage6);
this.tabControl2.Controls.Add(this.tabPreview);
this.tabControl2.Location = new System.Drawing.Point(8, 314);
this.tabControl2.Name = "tabControl2";
this.tabControl2.SelectedIndex = 0;
this.tabControl2.Size = new System.Drawing.Size(889, 306);
this.tabControl2.TabIndex = 108;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.pictureBox1);
this.tabPage3.Controls.Add(this.RichHtml);
this.tabPage3.Location = new System.Drawing.Point(4, 22);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(881, 280);
this.tabPage3.TabIndex = 0;
this.tabPage3.Text = "HTML";
this.tabPage3.UseVisualStyleBackColor = true;
//
// pictureBox1
//
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBox1.Location = new System.Drawing.Point(3, 3);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(875, 274);
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
this.pictureBox1.Visible = false;
//
// RichHtml
//
this.RichHtml.BackColor = System.Drawing.Color.White;
this.RichHtml.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichHtml.ContextMenuStrip = this.contextMenuStripRichText1;
this.RichHtml.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichHtml.Location = new System.Drawing.Point(3, 3);
this.RichHtml.Name = "RichHtml";
this.RichHtml.ReadOnly = true;
this.RichHtml.Size = new System.Drawing.Size(875, 274);
this.RichHtml.TabIndex = 0;
this.RichHtml.Text = "";
//
// contextMenuStripRichText1
//
this.contextMenuStripRichText1.Name = "contextMenuStripRichText1";
this.contextMenuStripRichText1.Size = new System.Drawing.Size(101, 164);
//
// tabPage12
//
this.tabPage12.Controls.Add(this.Te_Format);
this.tabPage12.Location = new System.Drawing.Point(4, 22);
this.tabPage12.Name = "tabPage12";
this.tabPage12.Padding = new System.Windows.Forms.Padding(3);
this.tabPage12.Size = new System.Drawing.Size(879, 280);
this.tabPage12.TabIndex = 4;
this.tabPage12.Text = "HTML格式化";
this.tabPage12.UseVisualStyleBackColor = true;
//
// Te_Format
//
this.Te_Format.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.Te_Format.ContextMenuStrip = this.contextMenuStripHighlightText1;
this.Te_Format.IsReadOnly = false;
this.Te_Format.Location = new System.Drawing.Point(3, 3);
this.Te_Format.Name = "Te_Format";
this.Te_Format.Size = new System.Drawing.Size(870, 279);
this.Te_Format.TabIndex = 0;
//
// contextMenuStripHighlightText1
//
this.contextMenuStripHighlightText1.Name = "contextMenuStripHighlightText1";
this.contextMenuStripHighlightText1.Size = new System.Drawing.Size(101, 186);
//
// tabPage4
//
this.tabPage4.Controls.Add(this.RichCookie);
this.tabPage4.Location = new System.Drawing.Point(4, 22);
this.tabPage4.Name = "tabPage4";
this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
this.tabPage4.Size = new System.Drawing.Size(879, 280);
this.tabPage4.TabIndex = 1;
this.tabPage4.Text = "Cookie";
this.tabPage4.UseVisualStyleBackColor = true;
//
// RichCookie
//
this.RichCookie.BackColor = System.Drawing.Color.White;
this.RichCookie.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichCookie.ContextMenuStrip = this.contextMenuStripRichText1;
this.RichCookie.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichCookie.Location = new System.Drawing.Point(3, 3);
this.RichCookie.Name = "RichCookie";
this.RichCookie.ReadOnly = true;
this.RichCookie.Size = new System.Drawing.Size(873, 274);
this.RichCookie.TabIndex = 1;
this.RichCookie.Text = "";
//
// tabPage5
//
this.tabPage5.Controls.Add(this.RichStatus);
this.tabPage5.Location = new System.Drawing.Point(4, 22);
this.tabPage5.Name = "tabPage5";
this.tabPage5.Padding = new System.Windows.Forms.Padding(3);
this.tabPage5.Size = new System.Drawing.Size(879, 280);
this.tabPage5.TabIndex = 2;
this.tabPage5.Text = "Status";
this.tabPage5.UseVisualStyleBackColor = true;
//
// RichStatus
//
this.RichStatus.BackColor = System.Drawing.Color.White;
this.RichStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichStatus.ContextMenuStrip = this.contextMenuStripRichText1;
this.RichStatus.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichStatus.Location = new System.Drawing.Point(3, 3);
this.RichStatus.Name = "RichStatus";
this.RichStatus.ReadOnly = true;
this.RichStatus.Size = new System.Drawing.Size(873, 274);
this.RichStatus.TabIndex = 2;
this.RichStatus.Text = "";
//
// tabPage6
//
this.tabPage6.Controls.Add(this.RichHeader);
this.tabPage6.Location = new System.Drawing.Point(4, 22);
this.tabPage6.Name = "tabPage6";
this.tabPage6.Padding = new System.Windows.Forms.Padding(3);
this.tabPage6.Size = new System.Drawing.Size(879, 280);
this.tabPage6.TabIndex = 3;
this.tabPage6.Text = "Header";
this.tabPage6.UseVisualStyleBackColor = true;
//
// RichHeader
//
this.RichHeader.BackColor = System.Drawing.Color.White;
this.RichHeader.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichHeader.ContextMenuStrip = this.contextMenuStripRichText1;
this.RichHeader.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichHeader.Location = new System.Drawing.Point(3, 3);
this.RichHeader.Name = "RichHeader";
this.RichHeader.ReadOnly = true;
this.RichHeader.Size = new System.Drawing.Size(873, 274);
this.RichHeader.TabIndex = 3;
this.RichHeader.Text = "";
//
// tabPreview
//
this.tabPreview.Controls.Add(this.extendedWebBrowser1);
this.tabPreview.Location = new System.Drawing.Point(4, 22);
this.tabPreview.Name = "tabPreview";
this.tabPreview.Padding = new System.Windows.Forms.Padding(3);
this.tabPreview.Size = new System.Drawing.Size(879, 280);
this.tabPreview.TabIndex = 5;
this.tabPreview.Text = "预览";
this.tabPreview.UseVisualStyleBackColor = true;
//
// extendedWebBrowser1
//
this.extendedWebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill;
this.extendedWebBrowser1.ForceOpenThisWindow = true;
this.extendedWebBrowser1.Location = new System.Drawing.Point(3, 3);
this.extendedWebBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
this.extendedWebBrowser1.Name = "extendedWebBrowser1";
this.extendedWebBrowser1.ScriptErrorsSuppressed = true;
this.extendedWebBrowser1.Size = new System.Drawing.Size(873, 274);
this.extendedWebBrowser1.TabIndex = 2;
//
// groupBox3
//
this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox3.Controls.Add(this.tabControl1);
this.groupBox3.Location = new System.Drawing.Point(10, 170);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(887, 138);
this.groupBox3.TabIndex = 107;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "高级输入参数";
//
// tabControl1
//
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage7);
this.tabControl1.Location = new System.Drawing.Point(4, 17);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(876, 115);
this.tabControl1.TabIndex = 6;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.TxtPost);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(868, 89);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "Post数据";
this.tabPage1.UseVisualStyleBackColor = true;
//
// TxtPost
//
this.TxtPost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtPost.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtPost.DetectUrls = false;
this.TxtPost.EmptyText = "请填写Post数据";
this.TxtPost.ForeColor = System.Drawing.Color.Black;
this.TxtPost.Location = new System.Drawing.Point(2, 3);
this.TxtPost.Name = "TxtPost";
this.TxtPost.OnlyInputText = true;
this.TxtPost.Size = new System.Drawing.Size(862, 83);
this.TxtPost.TabIndex = 2;
this.TxtPost.Text = "";
this.TxtPost.TextChanged += new System.EventHandler(this.TxtPost_TextChanged);
this.TxtPost.DoubleClick += new System.EventHandler(this.TxtPost_DoubleClick);
//
// tabPage2
//
this.tabPage2.Controls.Add(this.TxtCookie);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(868, 89);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "Cookie";
this.tabPage2.UseVisualStyleBackColor = true;
//
// TxtCookie
//
this.TxtCookie.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtCookie.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtCookie.DetectUrls = false;
this.TxtCookie.EmptyText = "请填写请求时要发送的Cookie";
this.TxtCookie.ForeColor = System.Drawing.Color.Black;
this.TxtCookie.Location = new System.Drawing.Point(2, 3);
this.TxtCookie.Name = "TxtCookie";
this.TxtCookie.OnlyInputText = true;
this.TxtCookie.Size = new System.Drawing.Size(862, 83);
this.TxtCookie.TabIndex = 6;
this.TxtCookie.Text = "";
this.TxtCookie.TextChanged += new System.EventHandler(this.TxtCookie_TextChanged);
this.TxtCookie.DoubleClick += new System.EventHandler(this.TxtPost_DoubleClick);
//
// tabPage7
//
this.tabPage7.Controls.Add(this.TxtInputHeader);
this.tabPage7.Location = new System.Drawing.Point(4, 22);
this.tabPage7.Name = "tabPage7";
this.tabPage7.Padding = new System.Windows.Forms.Padding(3);
this.tabPage7.Size = new System.Drawing.Size(868, 89);
this.tabPage7.TabIndex = 2;
this.tabPage7.Text = "Header";
this.tabPage7.UseVisualStyleBackColor = true;
//
// TxtInputHeader
//
this.TxtInputHeader.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtInputHeader.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtInputHeader.DetectUrls = false;
this.TxtInputHeader.EmptyText = "请填写请求时要发送的Header";
this.TxtInputHeader.ForeColor = System.Drawing.Color.Black;
this.TxtInputHeader.Location = new System.Drawing.Point(2, 3);
this.TxtInputHeader.Name = "TxtInputHeader";
this.TxtInputHeader.OnlyInputText = true;
this.TxtInputHeader.Size = new System.Drawing.Size(862, 83);
this.TxtInputHeader.TabIndex = 7;
this.TxtInputHeader.Text = "";
this.TxtInputHeader.TextChanged += new System.EventHandler(this.TxtInputHeader_TextChanged);
this.TxtInputHeader.DoubleClick += new System.EventHandler(this.TxtPost_DoubleClick);
//
// groupBox2
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Controls.Add(this.CbbReferer);
this.groupBox2.Controls.Add(this.CbbIp);
this.groupBox2.Controls.Add(this.label6);
this.groupBox2.Controls.Add(this.CbbUserAgent);
this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Controls.Add(this.CbbContentType);
this.groupBox2.Controls.Add(this.label11);
this.groupBox2.Controls.Add(this.label8);
this.groupBox2.Location = new System.Drawing.Point(10, 90);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(887, 75);
this.groupBox2.TabIndex = 106;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "高级配置";
//
// CbbReferer
//
this.CbbReferer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.CbbReferer.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbReferer.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbReferer.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbReferer.FormattingEnabled = true;
this.CbbReferer.Location = new System.Drawing.Point(360, 45);
this.CbbReferer.Name = "CbbReferer";
this.CbbReferer.Size = new System.Drawing.Size(520, 24);
this.CbbReferer.TabIndex = 6;
//
// CbbIp
//
this.CbbIp.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbIp.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbIp.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbIp.FormattingEnabled = true;
this.CbbIp.Location = new System.Drawing.Point(86, 46);
this.CbbIp.Name = "CbbIp";
this.CbbIp.Size = new System.Drawing.Size(205, 22);
this.CbbIp.TabIndex = 5;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(11, 50);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(41, 12);
this.label6.TabIndex = 4;
this.label6.Text = "代理IP";
//
// CbbUserAgent
//
this.CbbUserAgent.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.CbbUserAgent.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbUserAgent.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbUserAgent.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbUserAgent.FormattingEnabled = true;
this.CbbUserAgent.Items.AddRange(new object[] {
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT6.0)",
"Opera/9.27 (Windows NT 5.2; U; zh-cn)"});
this.CbbUserAgent.Location = new System.Drawing.Point(360, 18);
this.CbbUserAgent.Name = "CbbUserAgent";
this.CbbUserAgent.Size = new System.Drawing.Size(520, 22);
this.CbbUserAgent.TabIndex = 300;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(297, 24);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(59, 12);
this.label7.TabIndex = 2;
this.label7.Text = "UserAgent";
//
// CbbContentType
//
this.CbbContentType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbContentType.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbContentType.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbContentType.FormattingEnabled = true;
this.CbbContentType.Items.AddRange(new object[] {
"text/html",
"application/x-www-form-urlencoded",
"application/json",
"text/json"});
this.CbbContentType.Location = new System.Drawing.Point(86, 18);
this.CbbContentType.Name = "CbbContentType";
this.CbbContentType.Size = new System.Drawing.Size(205, 22);
this.CbbContentType.TabIndex = 1;
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(299, 50);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(47, 12);
this.label11.TabIndex = 0;
this.label11.Text = "Referer";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(11, 24);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(71, 12);
this.label8.TabIndex = 0;
this.label8.Text = "ContentType";
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.ChkNoPreview);
this.groupBox1.Controls.Add(this.ChkHtmlPreview);
this.groupBox1.Controls.Add(this.ChkGetPic);
this.groupBox1.Controls.Add(this.ChkJump);
this.groupBox1.Controls.Add(this.CbbWriteTimeout);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.CbbTimeout);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.CbbEncoding);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Location = new System.Drawing.Point(10, 34);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(887, 51);
this.groupBox1.TabIndex = 105;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "基本配置";
//
// ChkNoPreview
//
this.ChkNoPreview.AutoSize = true;
this.ChkNoPreview.Checked = true;
this.ChkNoPreview.CheckState = System.Windows.Forms.CheckState.Checked;
this.ChkNoPreview.Location = new System.Drawing.Point(610, 21);
this.ChkNoPreview.Name = "ChkNoPreview";
this.ChkNoPreview.Size = new System.Drawing.Size(60, 16);
this.ChkNoPreview.TabIndex = 9;
this.ChkNoPreview.Text = "不预览";
this.ChkNoPreview.UseVisualStyleBackColor = true;
this.ChkNoPreview.CheckedChanged += new System.EventHandler(this.ChkNoPreview_CheckedChanged);
//
// ChkHtmlPreview
//
this.ChkHtmlPreview.AutoSize = true;
this.ChkHtmlPreview.Checked = true;
this.ChkHtmlPreview.CheckState = System.Windows.Forms.CheckState.Checked;
this.ChkHtmlPreview.Enabled = false;
this.ChkHtmlPreview.Location = new System.Drawing.Point(676, 21);
this.ChkHtmlPreview.Name = "ChkHtmlPreview";
this.ChkHtmlPreview.Size = new System.Drawing.Size(144, 16);
this.ChkHtmlPreview.TabIndex = 8;
this.ChkHtmlPreview.Text = "使用HTML结果进行预览";
this.ChkHtmlPreview.UseVisualStyleBackColor = true;
//
// ChkGetPic
//
this.ChkGetPic.AutoSize = true;
this.ChkGetPic.Location = new System.Drawing.Point(532, 21);
this.ChkGetPic.Name = "ChkGetPic";
this.ChkGetPic.Size = new System.Drawing.Size(72, 16);
this.ChkGetPic.TabIndex = 7;
this.ChkGetPic.Text = "获取图片";
this.ChkGetPic.UseVisualStyleBackColor = true;
//
// ChkJump
//
this.ChkJump.AutoSize = true;
this.ChkJump.Location = new System.Drawing.Point(478, 21);
this.ChkJump.Name = "ChkJump";
this.ChkJump.Size = new System.Drawing.Size(48, 16);
this.ChkJump.TabIndex = 6;
this.ChkJump.Text = "跳转";
this.ChkJump.UseVisualStyleBackColor = true;
//
// CbbWriteTimeout
//
this.CbbWriteTimeout.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbWriteTimeout.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbWriteTimeout.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbWriteTimeout.FormattingEnabled = true;
this.CbbWriteTimeout.Items.AddRange(new object[] {
"100秒",
"50秒",
"30秒",
"20秒",
"10秒",
"5秒"});
this.CbbWriteTimeout.Location = new System.Drawing.Point(393, 18);
this.CbbWriteTimeout.Name = "CbbWriteTimeout";
this.CbbWriteTimeout.Size = new System.Drawing.Size(74, 22);
this.CbbWriteTimeout.TabIndex = 5;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(337, 24);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 12);
this.label5.TabIndex = 4;
this.label5.Text = "写入超时";
//
// CbbTimeout
//
this.CbbTimeout.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbTimeout.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbTimeout.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbTimeout.FormattingEnabled = true;
this.CbbTimeout.Items.AddRange(new object[] {
"100秒",
"50秒",
"30秒",
"20秒",
"10秒",
"5秒"});
this.CbbTimeout.Location = new System.Drawing.Point(256, 18);
this.CbbTimeout.Name = "CbbTimeout";
this.CbbTimeout.Size = new System.Drawing.Size(74, 22);
this.CbbTimeout.TabIndex = 3;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(197, 24);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(53, 12);
this.label4.TabIndex = 2;
this.label4.Text = "连接超时";
//
// CbbEncoding
//
this.CbbEncoding.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbEncoding.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbEncoding.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbEncoding.FormattingEnabled = true;
this.CbbEncoding.Items.AddRange(new object[] {
"自动识别",
"utf-8",
"gb2312",
"gbk",
"ASCII",
"Unicode",
"iso-8859-1"});
this.CbbEncoding.Location = new System.Drawing.Point(70, 18);
this.CbbEncoding.Name = "CbbEncoding";
this.CbbEncoding.Size = new System.Drawing.Size(121, 22);
this.CbbEncoding.TabIndex = 1;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(11, 24);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(53, 12);
this.label3.TabIndex = 0;
this.label3.Text = "选择编码";
//
// BtnRunHtml
//
this.BtnRunHtml.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnRunHtml.Location = new System.Drawing.Point(723, 6);
this.BtnRunHtml.Name = "BtnRunHtml";
this.BtnRunHtml.Size = new System.Drawing.Size(82, 26);
this.BtnRunHtml.TabIndex = 104;
this.BtnRunHtml.Text = "执行";
this.BtnRunHtml.UseVisualStyleBackColor = true;
this.BtnRunHtml.Click += new System.EventHandler(this.BtnRunHtml_Click);
//
// RbPost
//
this.RbPost.AutoSize = true;
this.RbPost.Location = new System.Drawing.Point(577, 10);
this.RbPost.Name = "RbPost";
this.RbPost.Size = new System.Drawing.Size(47, 16);
this.RbPost.TabIndex = 103;
this.RbPost.Text = "Post";
this.RbPost.UseVisualStyleBackColor = true;
//
// RbGet
//
this.RbGet.AutoSize = true;
this.RbGet.Checked = true;
this.RbGet.Location = new System.Drawing.Point(530, 10);
this.RbGet.Name = "RbGet";
this.RbGet.Size = new System.Drawing.Size(41, 16);
this.RbGet.TabIndex = 102;
this.RbGet.TabStop = true;
this.RbGet.Text = "Get";
this.RbGet.UseVisualStyleBackColor = true;
//
// TxtUrl
//
this.TxtUrl.BackColor = System.Drawing.Color.White;
this.TxtUrl.EmptyText = "请填写请求url";
this.TxtUrl.ImeMode = System.Windows.Forms.ImeMode.Close;
this.TxtUrl.Location = new System.Drawing.Point(45, 6);
this.TxtUrl.MaxLength = 999999999;
this.TxtUrl.Multiline = false;
this.TxtUrl.Name = "TxtUrl";
this.TxtUrl.OnlyNumeric = false;
this.TxtUrl.PasswordChar = '\0';
this.TxtUrl.ReadOnly = false;
this.TxtUrl.SelectedText = "";
this.TxtUrl.SelectionLength = 0;
this.TxtUrl.SelectionStart = 0;
this.TxtUrl.Size = new System.Drawing.Size(479, 23);
this.TxtUrl.TabIndex = 110;
this.TxtUrl.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtUrl.ToolTip = "";
this.TxtUrl.WordWrap = true;
this.TxtUrl.TextChanged2 += new System.EventHandler(this.TxtUrl_TextChanged2);
this.TxtUrl.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtUrl_KeyDown);
this.TxtUrl.Leave += new System.EventHandler(this.TxtUrl_Leave);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(14, 10);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(23, 12);
this.label2.TabIndex = 101;
this.label2.Text = "Url";
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(185, 92);
this.menuRight1.SourceContent = this;
//
// BtnCtreateCShape
//
this.BtnCtreateCShape.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnCtreateCShape.Location = new System.Drawing.Point(812, 6);
this.BtnCtreateCShape.Name = "BtnCtreateCShape";
this.BtnCtreateCShape.Size = new System.Drawing.Size(82, 26);
this.BtnCtreateCShape.TabIndex = 111;
this.BtnCtreateCShape.Text = "生成代码";
this.BtnCtreateCShape.UseVisualStyleBackColor = true;
this.BtnCtreateCShape.Click += new System.EventHandler(this.BtnCtreateCShape_Click);
//
// columnModel1
//
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
this.ColUrl,
this.ColTitle});
//
// ColUrl
//
this.ColUrl.Editable = false;
this.ColUrl.Tag = null;
this.ColUrl.Text = "网址";
this.ColUrl.Width = 430;
//
// ColTitle
//
this.ColTitle.Editable = false;
this.ColTitle.Tag = null;
this.ColTitle.Text = "名称";
this.ColTitle.Width = 200;
//
// table1
//
this.table1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.table1.ColumnModel = this.columnModel1;
this.table1.EnableToolTips = true;
this.table1.FullRowSelect = true;
this.table1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.table1.Location = new System.Drawing.Point(45, 30);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(657, 347);
this.table1.TabIndex = 112;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
this.table1.Visible = false;
this.table1.CellLostFocus += new XPTable.Events.CellFocusEventHandler(this.Table1_CellLostFocus);
this.table1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Table1_KeyDown);
this.table1.Leave += new System.EventHandler(this.Table1_Leave);
this.table1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.table1_MouseClick);
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// FrmWebGet
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(909, 620);
this.Controls.Add(this.TxtUrl);
this.Controls.Add(this.BtnCtreateCShape);
this.Controls.Add(this.ChkUrlLower);
this.Controls.Add(this.tabControl2);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.BtnRunHtml);
this.Controls.Add(this.RbPost);
this.Controls.Add(this.RbGet);
this.Controls.Add(this.label2);
this.Controls.Add(this.table1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmWebGet";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "网页抓取工具";
this.Load += new System.EventHandler(this.FrmWebGet_Load);
this.Click += new System.EventHandler(this.FrmWebGet_Click);
this.tabControl2.ResumeLayout(false);
this.tabPage3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.tabPage12.ResumeLayout(false);
this.tabPage4.ResumeLayout(false);
this.tabPage5.ResumeLayout(false);
this.tabPage6.ResumeLayout(false);
this.tabPreview.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.tabPage7.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.CheckBox ChkUrlLower;
private System.Windows.Forms.TabControl tabControl2;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.RichTextBox RichHtml;
private System.Windows.Forms.TabPage tabPage12;
private ICSharpCode.TextEditor.TextEditorControl Te_Format;
private System.Windows.Forms.TabPage tabPage4;
private System.Windows.Forms.RichTextBox RichCookie;
private System.Windows.Forms.TabPage tabPage5;
private System.Windows.Forms.RichTextBox RichStatus;
private System.Windows.Forms.TabPage tabPage6;
private System.Windows.Forms.RichTextBox RichHeader;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.GroupBox groupBox2;
private ryControls.RyComboBox CbbReferer;
private ryControls.RyComboBox CbbIp;
private System.Windows.Forms.Label label6;
private ryControls.RyComboBox CbbUserAgent;
private System.Windows.Forms.Label label7;
private ryControls.RyComboBox CbbContentType;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.CheckBox ChkGetPic;
private System.Windows.Forms.CheckBox ChkJump;
private ryControls.RyComboBox CbbWriteTimeout;
private System.Windows.Forms.Label label5;
private ryControls.RyComboBox CbbTimeout;
private System.Windows.Forms.Label label4;
private ryControls.RyComboBox CbbEncoding;
private System.Windows.Forms.Label label3;
private ryControls.ButtonEx BtnRunHtml;
private System.Windows.Forms.RadioButton RbPost;
private System.Windows.Forms.RadioButton RbGet;
private ryControls.TextBoxEx2 TxtUrl;
private System.Windows.Forms.Label label2;
private ryProcessManager.hezuo.ContextMenuStripRichText contextMenuStripRichText1;
private ryProcessManager.hezuo.ContextMenuStripHighlightText contextMenuStripHighlightText1;
private ryPaiban.Model.MenuRight menuRight1;
private ryControls.ButtonEx BtnCtreateCShape;
private XPTable.Models.ColumnModel columnModel1;
private XPTable.Models.TableModel tableModel1;
private XPTable.Models.Table table1;
private XPTable.Models.TextColumn ColUrl;
private XPTable.Models.TextColumn ColTitle;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.TabPage tabPage7;
private ryControls.Controls.RichTextBox2 TxtPost;
private ryControls.Controls.RichTextBox2 TxtCookie;
private ryControls.Controls.RichTextBox2 TxtInputHeader;
private System.Windows.Forms.TabPage tabPreview;
private ExtendedWebBrowser2.ExtendedWebBrowser extendedWebBrowser1;
private System.Windows.Forms.CheckBox ChkHtmlPreview;
private System.Windows.Forms.CheckBox ChkNoPreview;
}
}
@@ -0,0 +1,771 @@
using DotNet4.Utilities;
using ICSharpCode.TextEditor.Document;
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using 开发辅助工具.Manager;
namespace 开发辅助工具.Tools
{
public partial class FrmWebGet : DockContent
{
public FrmWebGet()
{
InitializeComponent();
LoadPram();
tabControl2.SelectedTab = tabPage12;
}
private void LoadPram()
{
Te_Format.IsReadOnly = true;
CbbContentType.SelectedIndex = 0;
CbbUserAgent.SelectedIndex = 0;
CbbEncoding.SelectedIndex = 0;
CbbTimeout.SelectedIndex = CbbTimeout.Items.Count-2;
CbbWriteTimeout.SelectedIndex = CbbWriteTimeout.Items.Count - 2;
CbbUserAgent.Items.AddRange(new UserAgentInfo[]{
new UserAgentInfo() { name = "QQ浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6776.400 QQBrowser/10.3.2601.400" },
new UserAgentInfo() { name = "360浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" },
new UserAgentInfo() { name = "QQ浏览器手机版", useragent = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" },
new UserAgentInfo() { name = "微信", useragent = "Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380" },
new UserAgentInfo() { name = "iPhone", useragent = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" },
new UserAgentInfo() { name = "安卓", useragent = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19" },
});
TxtPost.AddSeparatorMenu();
TxtPost.AddMenu("将选定项进行Url编码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
{
RyWeb.QuickWeb web = new RyWeb.QuickWeb();
TxtPost.SelectedText = web.UrlEncode(TxtPost.SelectedText, Encoding.UTF8);
});
TxtPost.AddMenu("将选定项进行Url编码(GB2312)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
{
RyWeb.QuickWeb web = new RyWeb.QuickWeb();
TxtPost.SelectedText = web.UrlEncode(TxtPost.SelectedText, Encoding.GetEncoding("GB2312"));
});
TxtPost.AddSeparatorMenu();
TxtPost.AddMenu("将选定项进行Url解码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
{
TxtPost.SelectedText = RyWeb.WebDecode.UrlDecode(TxtPost.SelectedText, Encoding.UTF8);
});
TxtPost.AddMenu("将选定项进行Url解码(GB2312)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
{
TxtPost.SelectedText = RyWeb.WebDecode.UrlDecode(TxtPost.SelectedText, Encoding.GetEncoding("GB2312"));
});
TxtPost.AddSeparatorMenu();
TxtPost.AddMenu("查询选定项对应的时间", "unixtime").Click += new EventHandler((object sender2, EventArgs e2) =>
{
MessageBox.Show("当前选中的时间是:" + RyDate.UnixTimeToDateTime(TxtPost.SelectedText).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
});
TxtPost.AddMenu("插入时间戳", "").Click += new EventHandler((object sender2, EventArgs e2) =>
{
SuperDesign.Controls.FrmInsertUnixTime frm = new SuperDesign.Controls.FrmInsertUnixTime();
frm.Icon = Icon;
var text = TxtPost.SelectedText;
if(text.Length>4 && text.IsInt())
{
frm.dateTimePickerEX1.Value = RyDate.UnixTimeToDateTime(text);
}
if (frm.ShowDialog()==DialogResult.OK)
{
TxtPost.SelectedText = RyDate.DateTimeToUnixTime(frm.dateTimePickerEX1.Value).ToString();
}
// MessageBox.Show("当前选中的时间是:" + RyDate.UnixTimeToDateTime(TxtPost.SelectedText).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
});
TxtPost.OnMenuOpening += TxtPost_OnMenuOpening;
}
private void TxtPost_OnMenuOpening(object sender, CancelEventArgs e)
{
var item= TxtPost.GetMenuItem("unixtime");
if(item!=null)
{
var text = TxtPost.SelectedText;
item.Visible = text.IsInt() && text.Length>4;
}
}
private bool IsExit = false;
private bool IsRunning = false;
Thread th;
private void BtnRunHtml_Click(object sender, EventArgs e)
{
if (IsRunning) {
IsExit = true;
BtnRunHtml.Text = "停止中"; ;
if (th!=null && th.IsAlive)
{
th.Abort();
}
return;
}
IsExit = false;
IsRunning = true;
BtnRunHtml.Text = "停止执行"; ;
#region 将当前设置赋值到查询
this.RichHtml.Text = "正在获取数据...";
Te_Format.Text = "正在获取数据...";
this.RichCookie.Text = "";
RichHeader.Text = "";
RichStatus.Text = "";
extendedWebBrowser1.LoadStrings("");
if (TxtUrl.Text.IndexOfEx("//") == 0)
{
TxtUrl.Text = "http:" + TxtUrl.Text;
}
else if (TxtUrl.Text.IndexOfEx("://") == 0)
{
TxtUrl.Text = "http" + TxtUrl.Text;
}
else if (TxtUrl.Text.IndexOfEx("http") != 0)
{
TxtUrl.Text = "http://" + TxtUrl.Text.TrimStart('/');
}
string str = "get";
if (RbGet.Checked)
{
str = "get";
}
if (RbPost.Checked)
{
str = "post";
}
HttpItem item = new HttpItem
{
URL = TxtUrl.Text.Trim(),
Method = str,
IsToLower = this.ChkUrlLower.Checked,
Cookie = this.TxtCookie.Text.Trim(),
Referer = this.CbbReferer.Text.Trim(),
Postdata = this.TxtPost.Text.Trim(),
Timeout = Convert.ToInt32(this.CbbTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
ReadWriteTimeout = Convert.ToInt32(this.CbbWriteTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
UserAgent = this.CbbUserAgent.Text,
ContentType = this.CbbContentType.Text,
Allowautoredirect = this.ChkJump.Checked,
ProtocolVersion = System.Net.HttpVersion.Version11,
ResultType = ChkGetPic.Checked ? ResultType.Byte : ResultType.String,
};
if (TxtInputHeader.Text.Length > 0)
{
try
{
string[] item_header = TxtInputHeader.Text.Replace("\r", "").Split('\n');
for (int i = 0; i < item_header.Length; i++)
{
item.Header.Add(item_header[i]);
//int iPos = item_header[i].LastIndexOf(":");
//if (iPos > 0)
//{
// var header_name = item_header[i].Substring(0, iPos);
// var header_value = item_header[i].Substring(iPos + 1);
// item.Header.Add(header_name, header_value);
//}
}
}
catch (Exception exception)
{
this.RichHtml.Text = exception.Message;
Te_Format.Text = "";
tabControl2.SelectedIndex = 0;
return;
}
}
if (CbbUserAgent.SelectedIndex != -1)
{
if (CbbUserAgent.SelectedItem is UserAgentInfo)
{
item.UserAgent = ((UserAgentInfo)CbbUserAgent.SelectedItem).useragent;
}
}
if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
{
item.ProxyIp = this.CbbIp.Text.Trim();
}
if (!this.CbbEncoding.Text.Contains("自动"))
{
item.Encoding = Encoding.GetEncoding(this.CbbEncoding.Text.Trim());
}
#endregion
if (th != null && th.IsAlive)
{
th.Abort();
}
th = new Thread(Start);
th.Start();
void Start()
{
try
{
var http = new HttpHelper();
DateTime dt = DateTime.Now;
var result = http.GetHtml(item);
DateTime dt_end = DateTime.Now;
_ = this.Invoke(new Action(() =>
{
#region 将获得的结果显示出来
if (result.Html.Length > 1024 * 1024 * 4)
{
this.RichHtml.Text = "获取失败,您要获取的网页超过4MB,暂时无法获取。";
Te_Format.Text = "获取失败,您要获取的网页超过4MB,暂时无法获取。";
}
else
{
if (result.StatusCode == System.Net.HttpStatusCode.Redirect)
{
if (!ChkJump.Checked)
{
switch (MessageBox.Show("当前Url需要跳转,是否勾选跳转重试获取?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
{
case DialogResult.Yes:
ChkJump.Checked = true;
IsRunning = false;
BtnRunHtml_Click(sender, e);
return;
}
}
}
RichHtml.Text = string.Empty;
if (this.ChkGetPic.Checked)
{
pictureBox1.Image = this.ByteArrayToImage(result.ResultByte);
RichHtml.Visible = false;
pictureBox1.Visible = true;
tabControl2.SelectedIndex = 0;
AddUrl("", TxtUrl.Text);
}
else
{
this.RichHtml.Text = result.Html;
if (Manager.Json.IsJson(result.Html))
{
Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("JSON");
Te_Format.Text = Manager.Json.ConvertJsonString(result.Html);
AddUrl("", TxtUrl.Text);
}
else
{
string[] _format_html = result.Html.Replace("\r", "").Split('\n');
string _html = "";
for (int i = 0; i < _format_html.Length; i++)
{
if (_format_html[i].Trim().Length == 0)
{
continue;
}
if (_html.Length > 0) { _html += "\r\n"; }
_html += _format_html[i];
}
Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("HTML");
Te_Format.Text = _html;
if (result.StatusCode == System.Net.HttpStatusCode.Redirect || result.StatusCode == System.Net.HttpStatusCode.OK)
{
string title = "";
try
{
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(result.Html);
var anchors = htmlDoc.DocumentNode.SelectNodes("//title");
if (anchors != null && anchors.Count > 0)
{
title = RyWeb.WebDecode.ConvertHtmlInner(anchors[0].InnerText);
}
}
catch { }
AddUrl(title, TxtUrl.Text);
}
}
this.RichHtml.Visible = true;
this.pictureBox1.Visible = false;
}
}
this.RichCookie.Text = result.Cookie;
var timespan = (dt_end - dt).TotalMilliseconds.ToInt();
string timespan_str = "";
if (timespan < 1000) { timespan_str = timespan + "毫秒"; }
else { timespan_str = timespan / 1000 + "秒" + timespan % 1000 + "毫秒"; }
this.RichStatus.Text = "StatusCode:" + result.StatusCode.ToString() + "\r\nStatusDescription:" + result.StatusDescription + "\r\n耗时:" + timespan_str;
this.RichHeader.Text = "";
foreach (string str1 in result.Header.AllKeys)
{
string text = this.RichHeader.Text;
this.RichHeader.Text = text + str1 + ":" + result.Header[str1].ToString() + "\r\n";
}
if (!ChkNoPreview.Checked)
{
if (ChkHtmlPreview.Checked)
{
if (!this.CbbEncoding.Text.Contains("自动"))
{
extendedWebBrowser1.LoadStrings(RichHtml.Text.Trim(), Encoding.GetEncoding(this.CbbEncoding.Text.Trim()));
}
else { extendedWebBrowser1.LoadStrings(RichHtml.Text.Trim(), Encoding.UTF8); }
//MessageBox.Show(extendedWebBrowser1.Document.Encoding);
//extendedWebBrowser1.Document.Encoding = Encoding.UTF8.BodyName;
}
else
{
if (RbGet.Checked)
{
extendedWebBrowser1.Navigate(TxtUrl.Text, null, null, TxtInputHeader.Text);
}
else
{
string strData = TxtPost.Text;
string strHeaders = "Content-Type: " + CbbContentType.Text + "\r\n" + TxtInputHeader.Text;
ASCIIEncoding AE = new ASCIIEncoding();
byte[] bytePost = AE.GetBytes(strData);
//byte[] byteHeaders = AE.GetBytes(strHeaders);
extendedWebBrowser1.Navigate(TxtUrl.Text, null, bytePost, strHeaders);
}
}
}
#endregion
}));
}
catch (Exception exception)
{
this.Invoke(new Action(() =>
{
if (IsExit)
{
this.RichHtml.Text = "用户中断执行";
BtnRunHtml.Text = "执行";
IsRunning = false;
}
else
{
this.RichHtml.Text = exception.Message;
}
Te_Format.Text = "";
}));
}
this.Invoke(new Action(() =>
{
BtnRunHtml.Text = "执行";
IsRunning = false;
}));
}
}
private Image ByteArrayToImage(byte[] Bytes)
{
MemoryStream stream = new MemoryStream(Bytes);
return Image.FromStream(stream, true);
}
private void TxtUrl_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
BtnRunHtml.PerformClick();
}
else if (e.KeyCode == Keys.Down)
{
if (table1.Visible)
{
table1.TableModel.Selections.Clear();
table1.TableModel.Selections.AddCells(0, 0, 0, columnModel1.Columns.Count - 1);
table1.Focus();
}
}
}
private void FrmWebGet_Load(object sender, EventArgs e)
{
contextMenuStripHighlightText1.AddSeparatorMenu();
contextMenuStripHighlightText1.AddMenu("将选中的内容作为Json分析", "").Click += AnalyJson_Click;
for (int i = 0; i < this.Controls.Count; i++)
{
switch (this.Controls[i])
{
case GroupBox gb:
gb.Click += Gb_Click;
break;
}
}
}
private void Gb_Click(object sender, EventArgs e)
{
table1.Visible = false;
//RbGet.Focus();
switch ((this.DockPanel.FindForm()))
{
case Form1 frm:
frm.HideDownList();
break;
}
}
private void AnalyJson_Click(object sender, EventArgs e)
{
ContextMenuStrip menu =(ContextMenuStrip) (((ToolStripMenuItem)sender).Owner);
switch(menu.SourceControl)
{
case ICSharpCode.TextEditor.TextEditorControl rich_txt:
var SelectedText= rich_txt.ActiveTextAreaControl.SelectionManager.SelectedText;
if (SelectedText == "") { SelectedText = rich_txt.Text; }
//if (Manager.Json.IsJson(SelectedText))
{
FrmJson frm = new FrmJson();
frm.Show(this.DockPanel);
frm.LoadJson(SelectedText);
}
break;
case RichTextBox rich_txt2:
var SelectedText2 = rich_txt2.SelectedText;
if (SelectedText2 == "") { SelectedText2 = rich_txt2.Text; }
//if (Manager.Json.IsJson(SelectedText2))
{
FrmJson frm = new FrmJson();
frm.Show(this.DockPanel);
frm.LoadJson(SelectedText2);
}
break;
}
}
private void BtnCtreateCShape_Click(object sender, EventArgs e)
{
string str = "get";
if (RbGet.Checked)
{
str = "get";
}
if (RbPost.Checked)
{
str = "post";
}
HttpItem item = new HttpItem
{
URL = TxtUrl.Text.Trim(),
Method = str,
IsToLower = this.ChkUrlLower.Checked,
Cookie = this.TxtCookie.Text.Trim(),
Referer = this.CbbReferer.Text.Trim(),
Postdata = this.TxtPost.Text.Trim(),
Timeout = Convert.ToInt32(this.CbbTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
ReadWriteTimeout = Convert.ToInt32(this.CbbWriteTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
UserAgent = this.CbbUserAgent.Text,
ContentType = this.CbbContentType.Text,
Allowautoredirect = this.ChkJump.Checked,
ResultType = ChkGetPic.Checked ? ResultType.Byte : ResultType.String
};
if (CbbUserAgent.SelectedIndex != -1)
{
if (CbbUserAgent.SelectedItem is UserAgentInfo)
{
item.UserAgent = ((UserAgentInfo)CbbUserAgent.SelectedItem).useragent;
}
}
if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
{
item.ProxyIp = this.CbbIp.Text.Trim();
}
if (!this.CbbEncoding.Text.Contains("自动"))
{
item.Encoding = Encoding.GetEncoding(this.CbbEncoding.Text.Trim());
}
this.RichHtml.Visible = true;
this.pictureBox1.Visible = false;
//this.SetHttpItem();
StringBuilder builder = new StringBuilder();
builder.Append(" HttpHelper http = new HttpHelper();\r\n");
builder.Append(" HttpItem item = new HttpItem()\r\n");
builder.Append(" {\r\n");
builder.Append(" URL = \"" + item.URL + "\",//URL 必需项 \r\n");
if (!this.CbbEncoding.Text.Trim().Contains("自动"))
{
builder.Append(" Encoding = System.Text.Encoding.GetEncoding( \"" + this.CbbEncoding.Text.Trim() + "\"),//URL 可选项 默认为Get \r\n");
}
builder.Append(" Method = \"" + item.Method + "\",//URL 可选项 默认为Get \r\n");
builder.Append(" IsToLower = " + item.IsToLower.ToString().ToLower() + ",//得到的HTML代码是否转成小写 可选项默认转小写 \r\n");
builder.Append(" Cookie = \"" + item.Cookie + "\",//字符串Cookie 可选项 \r\n");
builder.Append(" Referer =\"" + item.Referer + "\",//来源URL 可选项 \r\n");
builder.Append(" Postdata = \"" + item.Postdata + "\",//Post数据 可选项GET时不需要写 \r\n");
builder.Append(" Timeout = " + item.Timeout + ",//连接超时时间 可选项默认为100000 \r\n");
builder.Append(" ReadWriteTimeout = " + item.ReadWriteTimeout + ",//写入Post数据超时时间 可选项默认为30000 \r\n");
builder.Append(" UserAgent = \"" + item.UserAgent + "\",//用户的浏览器类型,版本,操作系统 可选项有默认值 \r\n");
builder.Append(" ContentType = \"" + item.ContentType + "\",//返回类型 可选项有默认值 \r\n");
builder.Append(" Allowautoredirect = " + item.Allowautoredirect.ToString().ToLower() + ",//是否根据301跳转 可选项 \r\n");
builder.Append(" //CerPath = \"d:\\123.cer\",//证书绝对路径 可选项不需要证书时可以不写这个参数 \r\n");
builder.Append(" //Connectionlimit = 1024,//最大连接数 可选项 默认为1024 \r\n");
builder.Append(" ProxyIp = \"" + item.ProxyIp + "\",//代理服务器ID 可选项 不需要代理 时可以不设置这三个参数 \r\n");
builder.Append(" //ProxyPwd = \"123456\",//代理服务器密码 可选项 \r\n");
builder.Append(" //ProxyUserName = \"administrator\",//代理服务器账户名 可选项 \r\n");
builder.Append(" ResultType = " + (ChkGetPic.Checked ? "ResultType.Byte" : "ResultType.String") + "\r\n");
builder.Append(" };\r\n");
builder.Append("");
builder.Append(" HttpResult result = http.GetHtml(item);\r\n");
builder.Append(" string html = result.Html;\r\n");
builder.Append(" string cookie = result.Cookie;\r\n");
builder.Append(" \r\n\r\n");
builder.Append(" /// <summary>\r\n");
builder.Append(" /// 字节数组生成图片\r\n");
builder.Append(" /// </summary>\r\n");
builder.Append(" /// <param name=\"Bytes\">字节数组</param>\r\n");
builder.Append(" /// <returns>图片</returns>\r\n");
builder.Append(" private Image byteArrayToImage(byte[] Bytes)\r\n");
builder.Append(" {\r\n");
builder.Append(" MemoryStream ms = new MemoryStream(Bytes);\r\n");
builder.Append(" return Bitmap.FromStream(ms,true);\r\n");
builder.Append(" }\r\n");
RichHtml.Text = builder.ToString();
Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
Te_Format.Text= builder.ToString();
}
public void AddUrl(string title,string url)
{
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
var _title = title;
if(_title == "")
{
var mode = url.Replace("?","&").GetStr("&a=","");
if (mode.IndexOf("&") > 0) { mode = mode.GetStr("", "&"); }
if(mode.Length==0)
{
mode = url.Replace("?", "&").GetStr("&Action=", "");
if (mode.IndexOf("&") > 0) { mode = mode.GetStr("", "&"); }
}
_title = mode;
}
RyQuickSQL mySQL = new RyQuickSQL("Urls");
mySQL.AddField("Name", _title);
mySQL.AddField("Url", url);
mySQL.AddField("Cookie", TxtCookie.Text);
mySQL.AddField("Postdata", TxtPost.Text);
mySQL.AddField("Header", TxtInputHeader.Text);
mySQL.AddField("Method", RbGet.Checked?"get":"post");
mySQL.AddField("Referer", CbbReferer.Text);
mySQL.AddField("ContentType", CbbContentType.Text);
mySQL.AddField("Encoding", CbbEncoding.Text);
DataSet ds = db.ReadData("select * from Urls where Url=@Url", mySQL);
if (mydb.HaveData(ds))
{
DataRow reader = ds.Tables[0].Rows[0];
#region 读取信息
mySQL.AddFieldCalc("ClickCount", "ClickCount+1");//点击次数
mySQL.AddField("editTime", DateTime.Now);
db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + reader["id"].ToString(), mySQL);
#endregion
}
else
{
mySQL.AddField("ClickCount",1);
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.ExecuteNonQuery(mySQL.GetInsertSQL(),mySQL);
}
}
db.Free();
}
bool proc_use = false;
private void ClickItem(bool run = false)
{
if (table1.SelectedItems.Length > 0)
{
table1.Visible = false;
Application.DoEvents();
proc_use = true;
string url = table1.SelectedItems[0].Cells[ColUrl.Index].Text;
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
db.AddParameter("url", url);
DataSet ds = db.ReadData("select * from Urls where Url=@url", db.GetParameter());
if(mydb.HaveData(ds))
{
DataRow row = ds.Tables[0].Rows[0];
SetValueByRich(TxtCookie,"Cookie");
SetValueByRich(TxtPost, "Postdata");
SetValueByRich(TxtInputHeader, "Header");
SetValue2(CbbReferer, "Referer");
SetValue2(CbbContentType, "ContentType");
SetValue2(CbbEncoding, "Encoding");
if (row["Method"].ToString().Length>0)
{
if(row["Method"].ToString()=="post")
{
RbPost.Checked = true;
}
else { RbGet.Checked = true; }
}
void SetValueByRich(ryControls.Controls.RichTextBox2 txt, string Field)
{
if (row[Field].ToString().Length > 0) { txt.Text = row[Field].ToString(); }
}
void SetValue2(ryControls.RyComboBox cbb, string Field)
{
if (row[Field].ToString().Length>0) { cbb.Text = row[Field].ToString(); }
}
}
db.Free();
}
TxtUrl.Text = url;
if (run)
{ BtnRunHtml.PerformClick(); }
proc_use = false;
}
else { table1.Visible = false; }
}
private void Table1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
if (table1.SelectedItems.Length > 0 && table1.SelectedItems[0].Index == 0)
{
table1.TableModel.Selections.Clear();
TxtUrl.Select();
//rySearch1.Select();
}
}
else if (e.KeyCode == Keys.Enter)
{
ClickItem();
}
}
private void TxtUrl_TextChanged2(object sender, EventArgs e)
{
if (proc_use) { return; }
string sql_where = "";
if (TxtUrl.Text != "") { sql_where = " where (Name like @SearchText or Url like @SearchText)"; }
#region 重新载入数据
tableModel1.Rows.Clear();
tableModel1.Selections.Clear();
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
db.AddParameter("SearchText", "%" + TxtUrl.Text + "%");
DataSet ds = db.ReadData("select * from Urls" + sql_where+ " order by ClickCount desc,editTime desc", db.GetParameter());
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow row = ds.Tables[0].Rows[i];
DateTime editTime = row["editTime"].ToDateTime();
XPTable.Models.Row itemList = new XPTable.Models.Row()
{
Tag = row["id"].ToString()
};
//需要修改此处
itemList.Cells.Add(new XPTable.Models.Cell(row["Url"].ToString()));//示例
itemList.Cells.Add(new XPTable.Models.Cell(row["Name"].ToString()));
if (editTime >= DateTime.Now.AddMinutes(-10))
{
tableModel1.Rows.Insert(0,itemList);
}
else
{
tableModel1.Rows.Add(itemList);
}
}
db.Free();
table1.Visible = tableModel1.Rows.Count != 0;
table1.BringToFront();
}
#endregion
}
private void FrmWebGet_Click(object sender, EventArgs e)
{
table1.Visible = false;
}
private void Table1_CellLostFocus(object sender, XPTable.Events.CellFocusEventArgs e)
{
if (e.Row == -1) { table1.Visible = false; }
}
private void Table1_Leave(object sender, EventArgs e)
{
if(!TxtUrl.Focused)
{
table1.Visible = false;
}
}
private void TxtUrl_Leave(object sender, EventArgs e)
{
if (!table1.Focused)
{
table1.Visible = false;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
}
private void table1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ClickItem();
}
}
private void TxtPost_DoubleClick(object sender, EventArgs e)
{
ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
{
Icon = Icon
};
frm.richTextBox1.Text = txt.Text;
if (frm.ShowDialog() == DialogResult.OK)
{
txt.Text = frm.richTextBox1.Text;
}
}
private void TxtPost_TextChanged(object sender, EventArgs e)
{
if (TxtPost.Text != "") { tabPage1.Text = "Post数据(有数据)"; }
else { tabPage1.Text = "Post数据"; }
}
private void TxtCookie_TextChanged(object sender, EventArgs e)
{
if (TxtCookie.Text != "") { tabPage2.Text = "Cookie(有数据)"; }
else { tabPage2.Text = "Cookie"; }
}
private void TxtInputHeader_TextChanged(object sender, EventArgs e)
{
if (TxtInputHeader.Text != "") { tabPage7.Text = "Header(有数据)"; }
else { tabPage7.Text = "Header"; }
}
private void ChkNoPreview_CheckedChanged(object sender, EventArgs e)
{
ChkHtmlPreview.Enabled = !ChkNoPreview.Checked;
}
}
public class UserAgentInfo
{
public string name = "";
public string useragent = "";
public override string ToString()
{
return name;
}
}
}
@@ -0,0 +1,215 @@
<?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="contextMenuStripRichText1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>627, 25</value>
</metadata>
<metadata name="contextMenuStripHighlightText1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>33, 18</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>842, 25</value>
</metadata>
<metadata name="columnModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>269, 25</value>
</metadata>
<metadata name="tableModel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>410, 25</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
AACBemwQgXpsiIF6bO+Bemz/gXps+4F6bPqBemz6gXps+oF6bPqBemz6gXps+oF6bPqBemz6gXps+oF6
bPqBemz6gXps+oF6bPqBemz6gXps+oF6bPqBemz6gXps/4F6bPmBemyqgXpsIYF6bACBemwAAAAAAAAA
AAAAAAAAAAAAAIF6bImBemz8gXps14F6bHmBemxTgXpsUIF6bFCBemxQgXpsUIF6bFCBemxQgXpsUIF6
bFCBemxQgXpsUIF6bFCBemxQgXpsUIF6bFCBemxQgXpsUIF6bFCBemxpgXpswIF6bP+BemyogXpsCoF6
bAAAAAAAAAAAAAAAAAAAAAAAgXps74F6bNeBemwvgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6
bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwSgXpssIF6
bPKBemwygXpsAIF6bACBemwAgXpsAIF6bACBemz/gXpseIF6bACBemwAgXpsAIF6bACBemwXgXpsNIF6
bDeBemw2gXpsNoF6bDaBemw2gXpsNoF6bDaBemw2gXpsNoF6bDaBemw2gXpsNoF6bDaBemw2gXpsN4F6
bDKBemxzgXps9YF6bG6BemwzgXpsN4F6bCiBemwFgXpsAIF6bPuBemxTgXpsAIF6bACBemwAgXpsVIF6
bM+BemzwgXps8oF6bPGBemzxgXps8oF6bPKBemzxgXps8YF6bPKBemzxgXps8YF6bPKBemzygXps8oF6
bPKBemzxgXps8oF6bPOBemz+gXps9oF6bPKBemzygXps54F6bJiBemwagXps+oF6bFCBemwAgXpsAIF6
bDKBemzlgXps/4F6bP6Bemz1gXps/YF6bP+Bemz2gXps+oF6bP+Bemz+gXps9YF6bP6Bemz/gXps+oF6
bPiBemz8gXps9oF6bP2Bemz1gXps/oF6bPWBemzxgXps8YF6bPKBemz+gXps/4F6bKGBemz6gXpsUYF6
bACBemwAgXpsdIF6bP+Bemz/gXps5IF6bFyBemzagXps/oF6bHOBemysgXps/4F6bOCBemxcgXps3oF6
bP+BemyngXpsiIF6bKiBemxcgXpsxYF6bGiBemzqgXpsbYF6bEGBemxMgXpsWoF6bN+Bemz/gXps84F6
bPqBemxRgXpsAIF6bACBemyFgXps/4F6bP+BemzcgXpsLoF6bNOBemz/gXpsTIF6bJSBemz/gXps2IF6
bC2BemzUgXps/4F6bI6BemxhgXpsYoF6bBGBemyWgXpsP4F6bOOBemxEgXpsgoF6bNWBemzVgXps94F6
bP+Bemz/gXps+oF6bFGBemwAgXpsAIF6bISBemz/gXps/4F6bN6BemwngXpsboF6bIeBemwpgXpsmIF6
bP+BemzYgXpsMIF6bNWBemz/gXpskIF6bFCBemxJgXpsP4F6bGWBemxCgXps5IF6bEaBemyjgXps/4F6
bP+Bemz/gXps/4F6bP+Bemz6gXpsUYF6bACBemwAgXpshIF6bP+Bemz/gXps3oF6bCeBemxqgXpsgoF6
bCeBemyYgXps/4F6bNyBemwxgXps2IF6bP+BemySgXpsK4F6bFKBemyXgXpsMYF6bD2BemzkgXpsRoF6
bKGBemz/gXps/4F6bP+Bemz/gXps/4F6bPqBemxRgXpsAIF6bACBemyFgXps/4F6bP+BemzcgXpsLYF6
bNKBemz/gXpsS4F6bJOBemzMgXpsi4F6bByBemyJgXpsyoF6bJCBemwAgXpsd4F6bNeBemwZgXpsLYF6
bOSBemxDgXpsn4F6bP+Bemz/gXps/4F6bP+Bemz/gXps+oF6bFGBemwAgXpsAIF6bIKBemz/gXps/4F6
bOqBemx8gXps4YF6bP6BemyPgXpsvIF6bJyBemxegXpsX4F6bF6BemyYgXpsuYF6bF2BemzEgXps+IF6
bH2Bemx6gXps74F6bJKBemzIgXps/4F6bP+Bemz/gXps/4F6bP6Bemz6gXpsUYF6bACBemwAgXpsXIF6
bP2Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP6Bemz+gXps/oF6bP6Bemz/gXps/4F6
bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps3IF6bPqBemxRgXpsAIF6
bACBemwUgXpss4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6
bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bP+Bemz/gXps/4F6bOuBemxhgXps+oF6
bFGBemwAgXpsAIF6bACBemwZgXpsdoF6bKmBemywgXpssYF6bLGBemyxgXpssYF6bLGBemyxgXpssYF6
bLGBemyxgXpssYF6bLGBemyxgXpssYF6bLGBemywgXpsvIF6bPWBemzHgXpssIF6bLCBemyYgXpsRIF6
bAKBemz6gXpsUYF6bACBemwAgXpsAIF6bACBemwAgXpsDYF6bAuBemwEgXpsBIF6bASBemwEgXpsBIF6
bASBemwEgXpsBIF6bASBemwEgXpsBIF6bASBemwEgXpsBIF6bAKBemwogXps34F6bEuBemwAgXpsBIF6
bACBemwAgXpsAIF6bPqBemxRgXpsAAAAAACBemwAgXpsAIF6bACBemxmgXpsW4F6bACBemwAgXpsAIF6
bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6bCSBemzegXpsSIF6
bACBemwAgXpsAIF6bACBemwAgXps+oF6bFGBemwAgXpsAIF6bACBemwAgXpsGIF6bG2BemyHgXpsAIF6
bBqBemwKgXpsAIF6bACBemwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBemwAgXpsJYF6
bN6BemxIgXpsAAAAAAAAAAAAAAAAAAAAAACBemz6gXpsUYF6bACBemwAgXpsA4F6bGCBemykgXpsWYF6
bJuBemwAgXpsb4F6bJmBemwWgXpsAIF6bACBemwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF6
bACBemwlgXps3oF6bEiBemwAAAAAAAAAAAAAAAAAAAAAAIF6bPqBemxRgXpsAIF6bA2BemyCgXps+YF6
bLqBemw9gXpsq4F6bAaBemxrgXps/4F6bLuBemwtgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6
bACBemwAgXpsAIF6bCSBemzegXpsSIF6bAAAAAAAAAAAAAAAAAAAAAAAgXps+oF6bE+BemwagXpsqIF6
bP6BemzAgXpsNoF6bB+BemyygXpsF4F6bBOBemyKgXps9oF6bNmBemxKgXpsAYF6bACBemwAgXpsCIF6
bBCBemwQgXpsEIF6bBCBemwOgXpsMoF6bOCBemxIgXpsAAAAAAAAAAAAAAAAAAAAAACBemz6gXpsTYF6
bHeBemz8gXpsjoF6bBWBemwAgXpsD4F6bLCBemwqgXpsAIF6bAOBemxTgXps4YF6bMqBemwOgXpsBoF6
bGCBemy7gXps0YF6bM+BemzOgXpszoF6bMyBemzUgXps9YF6bEiBemwAAAAAAAAAAAAAAAAAAAAAAIF6
bPqBemxNgXpsfIF6bPqBemx2gXpsCoF6bACBemwFgXpspIF6bEGBemwAgXpsAIF6bECBemzZgXpsz4F6
bA+BemxpgXps+oF6bOmBemyVgXpsboF6bGyBemxpgXpskoF6bPqBemzWgXpsJoF6bAAAAAAAAAAAAAAA
AAAAAAAAgXps+oF6bE+BemwmgXpsvIF6bPyBemyrgXpsKoF6bACBemyRgXpsWoF6bAqBemx2gXps7YF6
bOWBemxZgXpsEoF6bM2BemzjgXpsQIF6bACBemwAgXpsAIF6bBuBemy8gXps4IF6bECBemwAgXpsAAAA
AAAAAAAAAAAAAAAAAACBemz6gXpsUYF6bACBemwXgXpsmIF6bP+Bemy2gXpsBYF6bHiBemxygXpsYoF6
bP+BemzKgXpsO4F6bACBemwegXps4oF6bIKBemwAgXpsAIF6bACBemwagXpst4F6bOqBemxMgXpsAIF6
bACBemwAAAAAAAAAAAAAAAAAAAAAAIF6bPqBemxRgXpsAIF6bACBemwIgXpsdYF6bLOBemwJgXpsXYF6
bIyBemxxgXpsqYF6bCCBemwAgXpsAIF6bB+BemzdgXpsVYF6bACBemwAgXpsFYF6bK6BemzvgXpsWYF6
bACBemwAgXpsAAAAAAAAAAAAAAAAAAAAAAAAAAAAgXps+oF6bFCBemwAgXpsAIF6bACBemwCgXpsKYF6
bAOBemxEgXpso4F6bCWBemwPgXpsAIF6bACBemwAgXpsH4F6bNyBemxRgXpsAIF6bBCBemykgXps9IF6
bGaBemwAgXpsAIF6bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBemz7gXpsU4F6bACBemwAgXpsAIF6
bACBemwAgXpsAIF6bCuBemymgXpsDIF6bACBemwAgXpsAIF6bACBemwfgXps3IF6bFCBemwIgXpsmoF6
bPeBemx0gXpsAoF6bACBemwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF6bP+Bemx4gXpsAIF6
bACBemwAAAAAAAAAAACBemwAgXpsB4F6bCaBemwFgXpsAAAAAAAAAAAAgXpsAIF6bB+BemzbgXpsW4F6
bIuBemz5gXpsgYF6bAWBemwAgXpsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgXps74F6
bNeBemwvgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsAIF6bACBemwAgXpsG4F6
bNyBemzKgXps9oF6bI+BemwIgXpsAIF6bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACBemyJgXps/IF6bNeBemx6gXpsU4F6bFCBemxQgXpsUIF6bFCBemxQgXpsUIF6bFCBemxQgXpsUIF6
bE6BemxlgXps6oF6bP+BemybgXpsDYF6bACBemwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIF6bBCBemyIgXps74F6bP+Bemz7gXps+oF6bPqBemz6gXps+oF6bPqBemz6gXps+oF6
bPqBemz6gXps+oF6bPuBemz/gXpsuIF6bBaBemwAgXpsAIF6bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAf4PAAD+DwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAA
AB8AAAA/AAAAfwYMAP8AAAH/AAAD/wAAA/8=
</value>
</data>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>537, 25</value>
</metadata>
</root>
+198
View File
@@ -0,0 +1,198 @@
namespace 开发辅助工具.Tools
{
partial class FrmXpath
{
/// <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(FrmXpath));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.panelEx1 = new ryControls.PanelEx();
this.textEditorControl1 = new ICSharpCode.TextEditor.TextEditorControl();
this.contextMenuStripHighlightText1 = new ryProcessManager.hezuo.ContextMenuStripHighlightText();
this.RySearchXpath = new ryControls.rySearch();
this.label1 = new System.Windows.Forms.Label();
this.CbbXMLType = new ryControls.RyComboBox();
this.menuRight1 = new ryPaiban.Model.MenuRight(this.components);
this.TxtXML = new ryControls.Controls.RichTextBox2();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.panelEx1.SuspendLayout();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.splitContainer1.Location = new System.Drawing.Point(10, 33);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.TxtXML);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.panelEx1);
this.splitContainer1.Size = new System.Drawing.Size(875, 475);
this.splitContainer1.SplitterDistance = 145;
this.splitContainer1.SplitterWidth = 2;
this.splitContainer1.TabIndex = 13;
//
// panelEx1
//
this.panelEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(216)))), ((int)(((byte)(223)))));
this.panelEx1.Controls.Add(this.textEditorControl1);
this.panelEx1.Location = new System.Drawing.Point(2, 3);
this.panelEx1.Name = "panelEx1";
this.panelEx1.Padding = new System.Windows.Forms.Padding(2);
this.panelEx1.RoundeStyle = ryControls.RoundStyle.None;
this.panelEx1.Size = new System.Drawing.Size(869, 326);
this.panelEx1.TabIndex = 8;
this.panelEx1.TileBackColor = System.Drawing.Color.White;
//
// textEditorControl1
//
this.textEditorControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textEditorControl1.ContextMenuStrip = this.contextMenuStripHighlightText1;
this.textEditorControl1.IsReadOnly = false;
this.textEditorControl1.Location = new System.Drawing.Point(5, 5);
this.textEditorControl1.Name = "textEditorControl1";
this.textEditorControl1.Size = new System.Drawing.Size(859, 316);
this.textEditorControl1.TabIndex = 5;
//
// contextMenuStripHighlightText1
//
this.contextMenuStripHighlightText1.Name = "contextMenuStripHighlightText1";
this.contextMenuStripHighlightText1.Size = new System.Drawing.Size(101, 186);
//
// RySearchXpath
//
this.RySearchXpath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.RySearchXpath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
this.RySearchXpath.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.RySearchXpath.EmptyText = "";
this.RySearchXpath.Location = new System.Drawing.Point(179, 3);
this.RySearchXpath.Name = "RySearchXpath";
this.RySearchXpath.Size = new System.Drawing.Size(707, 25);
this.RySearchXpath.TabIndex = 12;
this.RySearchXpath.OnSearch += new System.EventHandler(this.RySearchXpath_OnSearch);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(102, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(71, 12);
this.label1.TabIndex = 11;
this.label1.Text = "Xpath表达式";
//
// CbbXMLType
//
this.CbbXMLType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbXMLType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CbbXMLType.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbXMLType.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbXMLType.FormattingEnabled = true;
this.CbbXMLType.Items.AddRange(new object[] {
"XML内容",
"Html内容"});
this.CbbXMLType.Location = new System.Drawing.Point(11, 3);
this.CbbXMLType.Name = "CbbXMLType";
this.CbbXMLType.Size = new System.Drawing.Size(85, 24);
this.CbbXMLType.TabIndex = 10;
//
// menuRight1
//
this.menuRight1.Name = "menuRight1";
this.menuRight1.Size = new System.Drawing.Size(173, 48);
this.menuRight1.SourceContent = this;
//
// TxtXML
//
this.TxtXML.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtXML.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtXML.DetectUrls = false;
this.TxtXML.EmptyText = "待匹配的XML或HTML内容";
this.TxtXML.ForeColor = System.Drawing.Color.Black;
this.TxtXML.Location = new System.Drawing.Point(3, 3);
this.TxtXML.Name = "TxtXML";
this.TxtXML.OnlyInputText = true;
this.TxtXML.Size = new System.Drawing.Size(868, 139);
this.TxtXML.TabIndex = 32;
this.TxtXML.Text = "";
this.TxtXML.DoubleClick += new System.EventHandler(this.TxtXML_DoubleClick);
//
// FrmXpath
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(894, 509);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.RySearchXpath);
this.Controls.Add(this.label1);
this.Controls.Add(this.CbbXMLType);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmXpath";
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "Xpath测试工具";
this.Load += new System.EventHandler(this.FrmXpath_Load);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.panelEx1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private ryControls.PanelEx panelEx1;
private ICSharpCode.TextEditor.TextEditorControl textEditorControl1;
private ryControls.rySearch RySearchXpath;
private System.Windows.Forms.Label label1;
private ryControls.RyComboBox CbbXMLType;
private ryProcessManager.hezuo.ContextMenuStripHighlightText contextMenuStripHighlightText1;
private ryPaiban.Model.MenuRight menuRight1;
private ryControls.Controls.RichTextBox2 TxtXML;
}
}
@@ -0,0 +1,88 @@
using HtmlAgilityPack;
using ICSharpCode.TextEditor.Document;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace 开发辅助工具.Tools
{
public partial class FrmXpath : DockContent
{
public FrmXpath()
{
InitializeComponent();
CbbXMLType.SelectedIndex = 0;
textEditorControl1.IsReadOnly = true;
}
private void RySearchXpath_OnSearch(object sender, EventArgs e)
{
string text = "";
string format = "XML";
try
{
if (CbbXMLType.SelectedIndex == 0)
{
format = "XML";
System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
xml.LoadXml(TxtXML.Text);
var node = xml.SelectNodes(RySearchXpath.Text);
if (node != null)
{
for (int i = 0; i < node.Count; i++)
{
if (text != "") { text += "\r\n\r\n"; }
text += node[i].OuterXml;
}
}
}
else if (CbbXMLType.SelectedIndex == 1)
{
format = "HTML";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(TxtXML.Text);
HtmlNodeCollection anchors = htmlDoc.DocumentNode.SelectNodes(RySearchXpath.Text);
if (anchors != null)
{
for (int i = 0; i < anchors.Count; i++)
{
if (text != "") { text += "\r\n\r\n"; }
text += anchors[i].OuterHtml;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
textEditorControl1.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy(format);
textEditorControl1.Text = text;
}
private void FrmXpath_Load(object sender, EventArgs e)
{
}
private void TxtXML_DoubleClick(object sender, EventArgs e)
{
ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
{
Icon = Icon
};
frm.richTextBox1.Text = txt.Text;
if (frm.ShowDialog() == DialogResult.OK)
{
txt.Text = frm.richTextBox1.Text;
}
}
}
}
@@ -0,0 +1,203 @@
<?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="contextMenuStripHighlightText1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>262, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAK8bAACvGwAAAAAAAAAA
AAAAAAAAARYZAAgdIAABFRgAARUYAAEVGAABFRgAABQXAAEWGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAARYZAAAVGAABFRgAARUYAAEVGAABFRgAARUYAAEVGAABFRgAARUYAAUZ
HAABFhkAAAAAAAAAAAASIiUABRkcAAAVGA4AFRgbABUYGwAVGA0DFxoABRgbAAUZHAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGBsAAxcaAAAVGA4AFRgeABUYHgAVGB0AFRgdABUYHQAV
GB0AFRgPBhkcAB8rLgAAAAAAAAAAAAMXGgADFxoUAhcasQIWGd4CFhneAhcasAMXGhoEGBsABxodAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxseAAQYGwADFxoWAhcargIWGeICFhngAhYZ3wIW
Gd8CFhneAhYZ4AIXGrIDFxoUAxcaAAAAAAAAAAAABBgbAAQYGxIFGRzEBRkc/wUZHP8FGRz/BRkclAYa
HQUHGx4ACx0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAseIAAGGh0AAA8KAAUZHH8FGRz/BRkc/wUZ
HP8FGRz/BRkc/wUZHP8FGRz/BRkcxwQYGxMEGBsAAAAAAAAAAAAAERQABxseAAcbHkIIGx7qCBwe/wgb
Hv8IHB72CRwfXwodIAAJHB8ADiAjAAAAAAAAAAAAAAAAAAAAAAAAAAAADiAjAAodIAAJHB88CBwe6Qgb
Hv8IHB7/CBwe/wgcHv8IHB7/CBwe/wgbHvMIGx5PCBseAAAAAwAAAAAAAAAAAAYZHAAJHR8ACh0gAAse
IHQMHiH8DB4h/wweIf8MHiHeDB8iMQ4gIgARIiUAEiMmAAAAAAAAAAAAAAAAABEiJQANHyIADR8iDwwe
IbcMHiH/DB4h/wweIf8MHiH/DB4h/wweIf8MHiH/Cx4hlgodIAQKHR8ABhodAAAAAAAAAAAAAAAAAAkc
HwANHyIADiAiDA4gI6gPISP/DyEj/w8hI/8PISS2ECEkEREiJQAUJScAAAAAAAAAAAAVJSgADyEkABAh
JAAPISRxDyEj/Q8hI/8PISP/DyEj/w8hI/8PISP/DyEj/w8gI9QOICMiDR8iAAodHwAAAAAAAAAAAAAA
AAAAAAAAAAAAAA0fIgAQHyAAER8fJhIhI9ESIyX/EiMm/xIjJv4TJCaDFCQnAhQiIgAaqf4AGqf6ABqn
+gAXcKEAEx4dMBIjJuESIyb/EiMm/xIjJv8SIyb/EiMm/xIjJv8SIyb4ESMlXREiJQAlMjUADB4hAAAA
AAAAAAAAAAAAAAAAAAAAAAAADyEkABqm+QAbwP8PF1d5gBYvOPsVJSf/FSYp/xUmKfAWJilPFywyAByj
+QEap/onGqf7NRqj8zcWQVWuFScq/xUmKP8VJin/FSYp/xUmKf8VJin/FSYp/xUmKKQUJScIFCQnABAh
JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaj6ABmo+0kZqfvpGXyy/hkvNf8ZKCr/GSgr/xko
K9IaHRkiGa7/NRmo+tsZqPryGar98hl7sP0ZKzD/GSgr/xkoK/8ZKCv/GSgr/xkoK/8ZKCveGCgqLBcn
KgATJCcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYqvoAGKn6Cxis/KEYqvn/GmaM/xwr
Lf8cKy3/HCot/xw1Pa4YqPS4GKz7/xis/P8Yo+7/G09n/xwqK/8cKy7/HCsu/xwrLv8cKy7/HCsu+xsq
LWsbKi0AHCsuABYmKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiq+gAXrfsAF677IRaw
/c4Xpev/HVBm/x8sLf8fLC7/G2SF/xat+P8Wr/v/FrD8/xt0n/8fLjL/Hy0w/x8uMP8fLjD/Hy4w/x8u
MP8fLTCxHi0vDR0sLwAaKSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF6z7ABmo
+wAWsPsAFbH7SRW0/u0Xl9H/IT5I/yBGVP8WoeH/FbP9/xW0/v8YmNP/IT5I/yMvMf8iMDP/IzAz/yIw
M/8jMDP/IjAz5iIwMjchLzEAHSwuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAFrD7ABSz/AATtP0BFLX8fBO2/f0ahbL/GYq5/xO3/v8Ttv3/FLDz/yBddf8mMTP/JjM1/yYz
Nf8mMzX/JjM1/yYzNf4lMjV5JTI2ACUyNAAgLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAFLP8ABO2/AASt/wOErn8sBK4+/8SuPv/Ern8/xK6/f8bhK3/KTg7/yk1
N/8pNTj/KTU4/yk1OP8pNTj/KTU4vig0NxMnNDYAJDEzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwv0AD7/9AA7C/wEQvP2VELz9/xC8/f8Qvf7/FKzl/yhM
WP8tNjj/LDg6/yw4Ov8sODr/LDg6/yw4OuwsNzpDKzc5ACYzNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzG/QAOwf0AD8D9Rw/A/e8Pv/3/D7/9/xC8
+f8RuPL/JWN4/zA5Ov8wOj3/MDo9/zA6Pf8wOj3/Lzo9lCEwMgAtODsAKjY4AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyP4ADcX9AA3E/RUNw/3CDsP9/w3E
//8TseX/JHaR/xG37P8Trd3/LVBb/zM7Pf8zPT//Mz0//zM9P/8zPUC5ND5AFDU/QQA4QUMAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcz+AAvI/gAQxPoADMf+fwzG
/v8Mxv7/DcX8/yR6lP83PkD/JHqU/wzF/f8amL3/NEVK/zY/Qf82QEL/NkBC/zZAQv83QEKIN0FDAzhB
RAA8REYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0f8ADMv+AArK
/jsLyv7pC8n+/wrL//8Yo8n/N0pP/zpBQ/84R0z/HJm9/wvJ/f8jgpzxOUFDlDlCROs6QkT/OUJE/zpC
RPI6QkVUO0NGADI7PgA/R0kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQ
/wAQ0P8RDM7+uAvO//8Kz///DsHu/zFkcf89Q0T/PUVH/z1DRf82WGH/E7Td/wrK+/ENw/FIPUJDfT1E
R/49REf/PURH/z1FR9Y+RUgpP0ZIAEJJSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAFtP/ABPS/0Qr1//dMs3x9zHI7P8vip//P0dK/0BHSf9AR0n/QEdJ/0FGR/8uc4TqCc794AfS
/5gyZXIVQEdJskBHSf9AR0n/QEdJ/0BHSqtBSEoNQklLAEVLTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAH2f8AAPr/CDCOo0U/YGjjP11k/0JOUv9DSUv/Q0pM/0NKTP9DSkz/Q0pM+UJM
T2UE2f8cB9L/GVoOAABCSUsuQ0pM3ENKTP9DSkz/Q0pM/ERKTHdETk4ARUtOAElOUQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAATFFTAE1FRQBSODMESEtMlUdLTf9HS03/R0xO/0dMT/9HTE7/R0xO/0dM
T/9GTE6oR0hJCRqoyAAH0v8AKoieAEVLTQBGTE5cR0xO9UdMT/9HTE7/R0xP60dNT0RITlAATlJVAE1R
UwAAAAAAAAAAAAAAAAAAAAAAAAAAAFBUVgBTVlgAS1BSAEtPUlFKT1HzSk9R/0pPUf9KT1H/Sk9R/0pP
Uf9KT1H/Sk9R4ElOUC9ITlAARUtNAAAAAABESk0ASE1PAEhOUARJTlGQSk9R/0pPUf9KT1H/Sk9RyktQ
Uh5MUVMAT1NVAAAAAAAAAAAAAAAAAAAAAAAAAAAAUlVYAE9TVQBOUlQbTVJUy01RVP9NUVT/TVFU/01R
VP9NUVT/TVFU/01RVPxNUVNvTFFTAE1RUwBHTU8AAAAAAAAAAABITVAAS1BSAExRUxhNUVPBTVFU/01R
VP9NUVT/TlJUm05SVQdPU1UAU1ZYAAAAAAAAAAAAAAAAAFZZWwBSVVgAU1VYAVFUV4lQVFb/UFRW/1FU
Vv9RVFb/UVRW/1BUVv9RVFb/UFRWtU9TVQ9PU1UAS1BSAAAAAAAAAAAAAAAAAEpPUQBKT1IAT1JVAFBT
VTxQVFbmUFRW/1BUVv9QVFb4UVRXZlJVVwBSVVcAVllbAAAAAAAAAAAAXF1fAFRWWABUVllEU1ZY7lNW
WP9TVlj/U1ZY/1NWWP9TVlj/VFZY/1RWWehTVlg6UlVXAE5SVAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5S
VABSVVcAUlZXAFNWWGxUVln6VFdZ/1RWWf9UV1niVVdZN1VXWQBaXF4AAAAAAAAAAABYWlwAUlRXDF1f
YbtiZGb/X2Fj/19hY/9fYWP/XmFi/15gYv9aXF7/VllbfllbYABWWFoAUVRXAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFFVVwBVV1kAVlhaCVdZW6FXWVv/V1lb/1dZW/9XWVu3WFpcDFhaXAAAAAAAAAAAAFlb
XQBVV1kNX2Fjo3N0dtx3eHnadnd523Z3edt2eHncdXZ43mVmaKtVV1kVWFpcAFVXWQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVYWgBYWlwAWVtdIVpbXbhaXF7iWlxe4VpbXapZW10OWVtdAAAA
AAAAAAAAVllbAFNVWABYWVsLVldZGVhZWxpYWVsaWFlbGlhaXBtYWlwbWFlbDFdZWwBYWlwAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFpcAFZZWwBYWlwAXF1fD1xdXx5cXV8dXF1fDllb
XQBTV1kAAAAAAAAAAABbXF4AXF1fAFtdXwBbXV8AW11fAFtdXwBbXV8AW11fAFtdXwBbXV8AXF1fAFtc
XgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1xeAF9hYwBbXV8AW11fAFtd
XwBbXV8AXF5gAFtcXgAAAAAAgH/gAYA/4AGAP8ABgB+AAYAPgAGABwABwAYAA+AAAAPgAAAH8AAAD/AA
AA/wAAAf8AAAP/gAAD/8AAB//AAA//wAAP/4AAD/8AAAf/AAAD/wAAA/8AAAH/AAAA/gAAAHwABAB8AA
YAOAAOABgAHwAYAB+AGAA/wBgAf8AYAH/gE=
</value>
</data>
</root>