├── .vs
└── EasyRemote
│ └── v16
│ └── .suo
├── EasyRemote.sln
├── EasyRemoteDesktop
├── AddServer.Designer.cs
├── AddServer.cs
├── AddServer.resx
├── App.config
├── EasyRemoteDesktop.csproj
├── EasyRemoteDesktop.csproj.user
├── FormAbout.Designer.cs
├── FormAbout.cs
├── FormAbout.resx
├── FormMain.Designer.cs
├── FormMain.cs
├── FormMain.resx
├── Global.cs
├── Icon
│ ├── 1121740.png
│ └── Remote.ico
├── Lib
│ └── BetterListViewExpress.dll
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── TXTClass.cs
├── bin
│ └── Debug
│ │ ├── AxInterop.MSTSCLib.dll
│ │ ├── BetterListViewExpress.dll
│ │ ├── EasyRemoteDesktop.exe
│ │ ├── EasyRemoteDesktop.exe.config
│ │ ├── EasyRemoteDesktop.pdb
│ │ ├── ICSharpCode.SharpZipLib.dll
│ │ ├── Interop.MSTSCLib.dll
│ │ ├── NPOI.Extension.dll
│ │ ├── NPOI.OOXML.dll
│ │ ├── NPOI.OpenXml4Net.dll
│ │ ├── NPOI.OpenXmlFormats.dll
│ │ ├── NPOI.dll
│ │ ├── NPOI.xml
│ │ ├── WinRemoteDesktop.db
│ │ └── 服务器清单.xlsx
├── obj
│ └── Debug
│ │ ├── .NETFramework,Version=v4.5.AssemblyAttributes.cs
│ │ ├── DesignTimeResolveAssemblyReferences.cache
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ ├── EasyRemoteDesktop.AddServer.resources
│ │ ├── EasyRemoteDesktop.FormAbout.resources
│ │ ├── EasyRemoteDesktop.FormMain.resources
│ │ ├── EasyRemoteDesktop.Properties.Resources.resources
│ │ ├── EasyRemoteDesktop.csproj.CopyComplete
│ │ ├── EasyRemoteDesktop.csproj.CoreCompileInputs.cache
│ │ ├── EasyRemoteDesktop.csproj.FileListAbsolute.txt
│ │ ├── EasyRemoteDesktop.csproj.GenerateResource.cache
│ │ ├── EasyRemoteDesktop.csprojAssemblyReference.cache
│ │ ├── EasyRemoteDesktop.exe
│ │ └── EasyRemoteDesktop.pdb
└── packages.config
├── README.md
└── packages
├── NPOI.2.3.0
├── .signature.p7s
├── LICENSE
├── NPOI.2.3.0.nupkg
├── Read Me.txt
├── Release Notes.txt
├── lib
│ ├── net20
│ │ ├── NPOI.OOXML.dll
│ │ ├── NPOI.OpenXml4Net.dll
│ │ ├── NPOI.OpenXmlFormats.dll
│ │ ├── NPOI.XML
│ │ └── NPOI.dll
│ └── net40
│ │ ├── NPOI.OOXML.dll
│ │ ├── NPOI.OpenXml4Net.dll
│ │ ├── NPOI.OpenXmlFormats.dll
│ │ ├── NPOI.XML
│ │ └── NPOI.dll
└── logo
│ ├── 120_120.jpg
│ ├── 240_240.png
│ ├── 32_32.jpg
│ └── 60_60.jpg
├── NPOI.Extension.2.2.0
├── .signature.p7s
├── NPOI.Extension.2.2.0.nupkg
└── lib
│ └── net45
│ └── NPOI.Extension.dll
└── SharpZipLib.0.86.0
├── .signature.p7s
├── SharpZipLib.0.86.0.nupkg
└── lib
├── 11
└── ICSharpCode.SharpZipLib.dll
├── 20
└── ICSharpCode.SharpZipLib.dll
├── SL3
└── SharpZipLib.Silverlight3.dll
└── SL4
└── SharpZipLib.Silverlight4.dll
/.vs/EasyRemote/v16/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/.vs/EasyRemote/v16/.suo
--------------------------------------------------------------------------------
/EasyRemote.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30204.135
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyRemoteDesktop", "EasyRemoteDesktop\EasyRemoteDesktop.csproj", "{1C5F1C4C-D1FB-4BB9-90D1-3DAA6ACAA697}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {1C5F1C4C-D1FB-4BB9-90D1-3DAA6ACAA697}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {1C5F1C4C-D1FB-4BB9-90D1-3DAA6ACAA697}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {1C5F1C4C-D1FB-4BB9-90D1-3DAA6ACAA697}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {1C5F1C4C-D1FB-4BB9-90D1-3DAA6ACAA697}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {7DAD535A-CAB5-4ACA-BF24-2D735A4BBD34}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/AddServer.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace EasyRemoteDesktop
2 | {
3 | partial class AddServer
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.label1 = new System.Windows.Forms.Label();
32 | this.label2 = new System.Windows.Forms.Label();
33 | this.label3 = new System.Windows.Forms.Label();
34 | this.label4 = new System.Windows.Forms.Label();
35 | this.txtServerIp = new System.Windows.Forms.TextBox();
36 | this.txtUserName = new System.Windows.Forms.TextBox();
37 | this.txtPassword = new System.Windows.Forms.TextBox();
38 | this.txtRemark = new System.Windows.Forms.TextBox();
39 | this.btnSave = new System.Windows.Forms.Button();
40 | this.txtCancel = new System.Windows.Forms.Button();
41 | this.label5 = new System.Windows.Forms.Label();
42 | this.SuspendLayout();
43 | //
44 | // label1
45 | //
46 | this.label1.AutoSize = true;
47 | this.label1.Location = new System.Drawing.Point(21, 18);
48 | this.label1.Name = "label1";
49 | this.label1.Size = new System.Drawing.Size(77, 12);
50 | this.label1.TabIndex = 0;
51 | this.label1.Text = "服务器地址:";
52 | //
53 | // label2
54 | //
55 | this.label2.AutoSize = true;
56 | this.label2.Location = new System.Drawing.Point(21, 65);
57 | this.label2.Name = "label2";
58 | this.label2.Size = new System.Drawing.Size(65, 12);
59 | this.label2.TabIndex = 1;
60 | this.label2.Text = "远程账号:";
61 | //
62 | // label3
63 | //
64 | this.label3.AutoSize = true;
65 | this.label3.Location = new System.Drawing.Point(21, 94);
66 | this.label3.Name = "label3";
67 | this.label3.Size = new System.Drawing.Size(65, 12);
68 | this.label3.TabIndex = 2;
69 | this.label3.Text = "远程密码:";
70 | //
71 | // label4
72 | //
73 | this.label4.AutoSize = true;
74 | this.label4.Location = new System.Drawing.Point(21, 123);
75 | this.label4.Name = "label4";
76 | this.label4.Size = new System.Drawing.Size(41, 12);
77 | this.label4.TabIndex = 3;
78 | this.label4.Text = "备注:";
79 | //
80 | // txtServerIp
81 | //
82 | this.txtServerIp.Location = new System.Drawing.Point(104, 15);
83 | this.txtServerIp.Name = "txtServerIp";
84 | this.txtServerIp.Size = new System.Drawing.Size(200, 21);
85 | this.txtServerIp.TabIndex = 4;
86 | //
87 | // txtUserName
88 | //
89 | this.txtUserName.Location = new System.Drawing.Point(104, 62);
90 | this.txtUserName.Name = "txtUserName";
91 | this.txtUserName.Size = new System.Drawing.Size(200, 21);
92 | this.txtUserName.TabIndex = 5;
93 | //
94 | // txtPassword
95 | //
96 | this.txtPassword.Location = new System.Drawing.Point(104, 91);
97 | this.txtPassword.Name = "txtPassword";
98 | this.txtPassword.Size = new System.Drawing.Size(200, 21);
99 | this.txtPassword.TabIndex = 6;
100 | //
101 | // txtRemark
102 | //
103 | this.txtRemark.Location = new System.Drawing.Point(104, 120);
104 | this.txtRemark.Name = "txtRemark";
105 | this.txtRemark.Size = new System.Drawing.Size(200, 21);
106 | this.txtRemark.TabIndex = 7;
107 | //
108 | // btnSave
109 | //
110 | this.btnSave.Location = new System.Drawing.Point(148, 150);
111 | this.btnSave.Name = "btnSave";
112 | this.btnSave.Size = new System.Drawing.Size(75, 23);
113 | this.btnSave.TabIndex = 8;
114 | this.btnSave.Text = "保存";
115 | this.btnSave.UseVisualStyleBackColor = true;
116 | this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
117 | //
118 | // txtCancel
119 | //
120 | this.txtCancel.Location = new System.Drawing.Point(229, 150);
121 | this.txtCancel.Name = "txtCancel";
122 | this.txtCancel.Size = new System.Drawing.Size(75, 23);
123 | this.txtCancel.TabIndex = 9;
124 | this.txtCancel.Text = "取消";
125 | this.txtCancel.UseVisualStyleBackColor = true;
126 | this.txtCancel.Click += new System.EventHandler(this.txtCancel_Click);
127 | //
128 | // label5
129 | //
130 | this.label5.AutoSize = true;
131 | this.label5.ForeColor = System.Drawing.Color.Gray;
132 | this.label5.Location = new System.Drawing.Point(102, 43);
133 | this.label5.Name = "label5";
134 | this.label5.Size = new System.Drawing.Size(149, 12);
135 | this.label5.TabIndex = 10;
136 | this.label5.Text = "示例:192.168.1.100:8888";
137 | //
138 | // FormDesktop
139 | //
140 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
141 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
142 | this.ClientSize = new System.Drawing.Size(324, 186);
143 | this.Controls.Add(this.label5);
144 | this.Controls.Add(this.txtCancel);
145 | this.Controls.Add(this.btnSave);
146 | this.Controls.Add(this.txtRemark);
147 | this.Controls.Add(this.txtPassword);
148 | this.Controls.Add(this.txtUserName);
149 | this.Controls.Add(this.txtServerIp);
150 | this.Controls.Add(this.label4);
151 | this.Controls.Add(this.label3);
152 | this.Controls.Add(this.label2);
153 | this.Controls.Add(this.label1);
154 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
155 | this.MaximizeBox = false;
156 | this.Name = "FormDesktop";
157 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
158 | this.Text = "远程桌面管理";
159 | this.Load += new System.EventHandler(this.FormRemote_Load);
160 | this.ResumeLayout(false);
161 | this.PerformLayout();
162 |
163 | }
164 |
165 | #endregion
166 |
167 | private System.Windows.Forms.Label label1;
168 | private System.Windows.Forms.Label label2;
169 | private System.Windows.Forms.Label label3;
170 | private System.Windows.Forms.Label label4;
171 | private System.Windows.Forms.TextBox txtServerIp;
172 | private System.Windows.Forms.TextBox txtUserName;
173 | private System.Windows.Forms.TextBox txtPassword;
174 | private System.Windows.Forms.TextBox txtRemark;
175 | private System.Windows.Forms.Button btnSave;
176 | private System.Windows.Forms.Button txtCancel;
177 | private System.Windows.Forms.Label label5;
178 | }
179 | }
--------------------------------------------------------------------------------
/EasyRemoteDesktop/AddServer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Data;
3 | using System.Windows.Forms;
4 |
5 | namespace EasyRemoteDesktop
6 | {
7 | public partial class AddServer : Form
8 | {
9 | public string _Action;
10 | public string _ServerIp;
11 |
12 | public AddServer()
13 | {
14 | InitializeComponent();
15 | }
16 |
17 | #region 主窗体
18 | // 主窗体-加载
19 | private void FormRemote_Load(object sender, EventArgs e)
20 | {
21 | if (string.IsNullOrWhiteSpace(_Action) || string.IsNullOrWhiteSpace(_ServerIp)) return;
22 |
23 | string where = string.Format("c0='{0}'", _ServerIp);
24 | DataTable dt = new TXTClass().txtRead(Global.dbFile, '|', where);
25 | if (dt.Rows.Count > 0)
26 | {
27 | this.txtServerIp.Text = dt.Rows[0][0].ToString();
28 | this.txtUserName.Text = dt.Rows[0][1].ToString();
29 | this.txtPassword.Text = dt.Rows[0][2].ToString();
30 | this.txtRemark.Text = dt.Rows[0][3].ToString();
31 | }
32 | }
33 | #endregion
34 |
35 | #region 添加/编辑 数据
36 | // 保存数据
37 | private void btnSave_Click(object sender, EventArgs e)
38 | {
39 | string ServerIp = this.txtServerIp.Text.Trim();
40 | string UserName = this.txtUserName.Text.Trim();
41 | string Password = this.txtPassword.Text.Trim();
42 | string Remark = this.txtRemark.Text.Trim();
43 |
44 | if (string.IsNullOrWhiteSpace(ServerIp))
45 | {
46 | Global.WinMessage("请输入服务器IP地址!");
47 | return;
48 | }
49 | if (!Global.IsServerAddress(ServerIp))
50 | {
51 | Global.WinMessage("服务器IP地址格式不合法!");
52 | return;
53 | }
54 | if (string.IsNullOrWhiteSpace(UserName))
55 | {
56 | Global.WinMessage("请输入远程账号!");
57 | return;
58 | }
59 |
60 | string data = string.Format("{0}|{1}|{2}|{3}", ServerIp, UserName, Password, Remark);
61 |
62 | if (_Action == "EDIT")
63 | {
64 | string where = string.Format("c0='{0}'", _ServerIp);
65 | new TXTClass().txtModify(Global.dbFile, '|', data, where);
66 | }
67 | else
68 | {
69 | new TXTClass().txtWrite(Global.dbFile, data);
70 | }
71 | this.DialogResult = DialogResult.OK;
72 | this.Close();
73 | }
74 | // 取消 添加/编辑
75 | private void txtCancel_Click(object sender, EventArgs e)
76 | {
77 | this.Close();
78 | }
79 | #endregion
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/AddServer.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/EasyRemoteDesktop.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {1C5F1C4C-D1FB-4BB9-90D1-3DAA6ACAA697}
8 | WinExe
9 | EasyRemoteDesktop
10 | EasyRemoteDesktop
11 | v4.5
12 | 512
13 | true
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 |
36 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\AxInterop.MSTSCLib.dll
37 | False
38 |
39 |
40 | False
41 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\BetterListViewExpress.dll
42 |
43 |
44 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\ICSharpCode.SharpZipLib.dll
45 |
46 |
47 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\Interop.MSTSCLib.dll
48 | False
49 |
50 |
51 | C:\Program Files (x86)\QizhiTech\AccessClient\MSTSCLib.DLL
52 | True
53 |
54 |
55 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\NPOI.dll
56 |
57 |
58 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\NPOI.Extension.dll
59 |
60 |
61 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\NPOI.OOXML.dll
62 |
63 |
64 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\NPOI.OpenXml4Net.dll
65 |
66 |
67 | ..\..\..\..\MyData\zhangzhen26\Downloads\WinRemoteDesktop-master\WinRemoteDesktop\bin\Debug\NPOI.OpenXmlFormats.dll
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | Form
84 |
85 |
86 | FormAbout.cs
87 |
88 |
89 | Form
90 |
91 |
92 | AddServer.cs
93 |
94 |
95 | Form
96 |
97 |
98 | FormMain.cs
99 |
100 |
101 |
102 |
103 |
104 |
105 | FormAbout.cs
106 |
107 |
108 | AddServer.cs
109 |
110 |
111 | FormMain.cs
112 |
113 |
114 | ResXFileCodeGenerator
115 | Resources.Designer.cs
116 | Designer
117 |
118 |
119 | True
120 | Resources.resx
121 |
122 |
123 |
124 | SettingsSingleFileGenerator
125 | Settings.Designer.cs
126 |
127 |
128 | True
129 | Settings.settings
130 | True
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/EasyRemoteDesktop.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ShowAllFiles
5 |
6 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/FormAbout.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace EasyRemoteDesktop
2 | {
3 | partial class FormAbout
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAbout));
32 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
33 | this.label1 = new System.Windows.Forms.Label();
34 | this.label3 = new System.Windows.Forms.Label();
35 | this.label4 = new System.Windows.Forms.Label();
36 | this.label2 = new System.Windows.Forms.Label();
37 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
38 | this.SuspendLayout();
39 | //
40 | // pictureBox1
41 | //
42 | this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
43 | this.pictureBox1.Location = new System.Drawing.Point(18, 12);
44 | this.pictureBox1.Name = "pictureBox1";
45 | this.pictureBox1.Size = new System.Drawing.Size(100, 100);
46 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
47 | this.pictureBox1.TabIndex = 0;
48 | this.pictureBox1.TabStop = false;
49 | //
50 | // label1
51 | //
52 | this.label1.AutoSize = true;
53 | this.label1.Location = new System.Drawing.Point(133, 23);
54 | this.label1.Name = "label1";
55 | this.label1.Size = new System.Drawing.Size(143, 12);
56 | this.label1.TabIndex = 1;
57 | this.label1.Text = "简易远程桌面工具 v2.0.0";
58 | //
59 | // label3
60 | //
61 | this.label3.AutoSize = true;
62 | this.label3.Location = new System.Drawing.Point(133, 69);
63 | this.label3.Name = "label3";
64 | this.label3.Size = new System.Drawing.Size(197, 12);
65 | this.label3.TabIndex = 4;
66 | this.label3.Text = "开发者:广东美云智数科技有限公司";
67 | //
68 | // label4
69 | //
70 | this.label4.AutoSize = true;
71 | this.label4.Location = new System.Drawing.Point(133, 92);
72 | this.label4.Name = "label4";
73 | this.label4.Size = new System.Drawing.Size(101, 12);
74 | this.label4.TabIndex = 5;
75 | this.label4.Text = "Copyright © 2020";
76 | //
77 | // label2
78 | //
79 | this.label2.AutoSize = true;
80 | this.label2.Location = new System.Drawing.Point(133, 46);
81 | this.label2.Name = "label2";
82 | this.label2.Size = new System.Drawing.Size(77, 12);
83 | this.label2.TabIndex = 6;
84 | this.label2.Text = "For .Net 4.5";
85 | //
86 | // FormAbout
87 | //
88 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
89 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
90 | this.ClientSize = new System.Drawing.Size(359, 145);
91 | this.Controls.Add(this.label2);
92 | this.Controls.Add(this.label4);
93 | this.Controls.Add(this.label3);
94 | this.Controls.Add(this.label1);
95 | this.Controls.Add(this.pictureBox1);
96 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
97 | this.MaximizeBox = false;
98 | this.MinimizeBox = false;
99 | this.Name = "FormAbout";
100 | this.ShowIcon = false;
101 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
102 | this.Text = "关于";
103 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
104 | this.ResumeLayout(false);
105 | this.PerformLayout();
106 |
107 | }
108 |
109 | #endregion
110 |
111 | private System.Windows.Forms.PictureBox pictureBox1;
112 | private System.Windows.Forms.Label label1;
113 | private System.Windows.Forms.Label label3;
114 | private System.Windows.Forms.Label label4;
115 | private System.Windows.Forms.Label label2;
116 | }
117 | }
--------------------------------------------------------------------------------
/EasyRemoteDesktop/FormAbout.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Forms;
3 |
4 | namespace EasyRemoteDesktop
5 | {
6 | public partial class FormAbout : Form
7 | {
8 | public FormAbout()
9 | {
10 | InitializeComponent();
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/FormAbout.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | 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
316 | IPp/bYTGTkcLTm8AAAAASUVORK5CYII=
317 |
318 |
319 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/FormMain.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace EasyRemoteDesktop
2 | {
3 | partial class FormMain
4 | {
5 | ///
6 | /// 必需的设计器变量。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 清理所有正在使用的资源。
12 | ///
13 | /// 如果应释放托管资源,为 true;否则为 false。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows 窗体设计器生成的代码
24 |
25 | ///
26 | /// 设计器支持所需的方法 - 不要修改
27 | /// 使用代码编辑器修改此方法的内容。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.components = new System.ComponentModel.Container();
32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
33 | this.toolStrip1 = new System.Windows.Forms.ToolStrip();
34 | this.tsbConnect = new System.Windows.Forms.ToolStripButton();
35 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
36 | this.tsbAddData = new System.Windows.Forms.ToolStripButton();
37 | this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
38 | this.tsbEdit = new System.Windows.Forms.ToolStripButton();
39 | this.tsbDel = new System.Windows.Forms.ToolStripButton();
40 | this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
41 | this.tsbAbout = new System.Windows.Forms.ToolStripButton();
42 | this.tsbFullScreen = new System.Windows.Forms.ToolStripButton();
43 | this.tsbImport = new System.Windows.Forms.ToolStripButton();
44 | this.statusStrip1 = new System.Windows.Forms.StatusStrip();
45 | this.tsMsg = new System.Windows.Forms.ToolStripStatusLabel();
46 | this.tsItemLabel = new System.Windows.Forms.ToolStripStatusLabel();
47 | this.betterListView1 = new ComponentOwl.BetterListView.BetterListView();
48 | this.chServerIp = new ComponentOwl.BetterListView.BetterListViewColumnHeader();
49 | this.chUserName = new ComponentOwl.BetterListView.BetterListViewColumnHeader();
50 | this.chPassword = new ComponentOwl.BetterListView.BetterListViewColumnHeader();
51 | this.chRemark = new ComponentOwl.BetterListView.BetterListViewColumnHeader();
52 | this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
53 | this.tsMenuConnect = new System.Windows.Forms.ToolStripMenuItem();
54 | this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
55 | this.tsMenuEdit = new System.Windows.Forms.ToolStripMenuItem();
56 | this.tsMenuDel = new System.Windows.Forms.ToolStripMenuItem();
57 | this.imageList1 = new System.Windows.Forms.ImageList(this.components);
58 | this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
59 | this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
60 | this.tsMenuNotifyShow = new System.Windows.Forms.ToolStripMenuItem();
61 | this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
62 | this.tsMenuNotifyExit = new System.Windows.Forms.ToolStripMenuItem();
63 | this.tsbBatchDel = new System.Windows.Forms.ToolStripButton();
64 | this.toolStrip1.SuspendLayout();
65 | this.statusStrip1.SuspendLayout();
66 | ((System.ComponentModel.ISupportInitialize)(this.betterListView1)).BeginInit();
67 | this.contextMenuStrip1.SuspendLayout();
68 | this.contextMenuStrip2.SuspendLayout();
69 | this.SuspendLayout();
70 | //
71 | // toolStrip1
72 | //
73 | this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
74 | this.tsbConnect,
75 | this.toolStripSeparator1,
76 | this.tsbAddData,
77 | this.toolStripSeparator2,
78 | this.tsbEdit,
79 | this.tsbDel,
80 | this.toolStripSeparator3,
81 | this.tsbAbout,
82 | this.tsbImport,
83 | this.tsbBatchDel,
84 | this.tsbFullScreen});
85 | this.toolStrip1.Location = new System.Drawing.Point(0, 0);
86 | this.toolStrip1.Name = "toolStrip1";
87 | this.toolStrip1.Size = new System.Drawing.Size(464, 25);
88 | this.toolStrip1.TabIndex = 4;
89 | this.toolStrip1.Text = "toolStrip1";
90 | //
91 | // tsbConnect
92 | //
93 | this.tsbConnect.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
94 | this.tsbConnect.Enabled = false;
95 | this.tsbConnect.Image = ((System.Drawing.Image)(resources.GetObject("tsbConnect.Image")));
96 | this.tsbConnect.ImageTransparentColor = System.Drawing.Color.Magenta;
97 | this.tsbConnect.Name = "tsbConnect";
98 | this.tsbConnect.Size = new System.Drawing.Size(23, 22);
99 | this.tsbConnect.Text = "连接";
100 | this.tsbConnect.Click += new System.EventHandler(this.tsbConnect_Click);
101 | //
102 | // toolStripSeparator1
103 | //
104 | this.toolStripSeparator1.Name = "toolStripSeparator1";
105 | this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
106 | //
107 | // tsbAddData
108 | //
109 | this.tsbAddData.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
110 | this.tsbAddData.Image = ((System.Drawing.Image)(resources.GetObject("tsbAddData.Image")));
111 | this.tsbAddData.ImageTransparentColor = System.Drawing.Color.Magenta;
112 | this.tsbAddData.Name = "tsbAddData";
113 | this.tsbAddData.Size = new System.Drawing.Size(23, 22);
114 | this.tsbAddData.Text = "添加";
115 | this.tsbAddData.Click += new System.EventHandler(this.tsbAddData_Click);
116 | //
117 | // toolStripSeparator2
118 | //
119 | this.toolStripSeparator2.Name = "toolStripSeparator2";
120 | this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
121 | //
122 | // tsbEdit
123 | //
124 | this.tsbEdit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
125 | this.tsbEdit.Enabled = false;
126 | this.tsbEdit.Image = ((System.Drawing.Image)(resources.GetObject("tsbEdit.Image")));
127 | this.tsbEdit.ImageTransparentColor = System.Drawing.Color.Magenta;
128 | this.tsbEdit.Name = "tsbEdit";
129 | this.tsbEdit.Size = new System.Drawing.Size(23, 22);
130 | this.tsbEdit.Text = "编辑";
131 | this.tsbEdit.Click += new System.EventHandler(this.tsbEdit_Click);
132 | //
133 | // tsbDel
134 | //
135 | this.tsbDel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
136 | this.tsbDel.Enabled = false;
137 | this.tsbDel.Image = ((System.Drawing.Image)(resources.GetObject("tsbDel.Image")));
138 | this.tsbDel.ImageTransparentColor = System.Drawing.Color.Magenta;
139 | this.tsbDel.Name = "tsbDel";
140 | this.tsbDel.Size = new System.Drawing.Size(23, 22);
141 | this.tsbDel.Text = "删除";
142 | this.tsbDel.Click += new System.EventHandler(this.tsbDel_Click);
143 | //
144 | // toolStripSeparator3
145 | //
146 | this.toolStripSeparator3.Name = "toolStripSeparator3";
147 | this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
148 | //
149 | // tsbAbout
150 | //
151 | this.tsbAbout.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
152 | this.tsbAbout.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
153 | this.tsbAbout.Image = ((System.Drawing.Image)(resources.GetObject("tsbAbout.Image")));
154 | this.tsbAbout.ImageTransparentColor = System.Drawing.Color.Magenta;
155 | this.tsbAbout.Name = "tsbAbout";
156 | this.tsbAbout.Size = new System.Drawing.Size(23, 22);
157 | this.tsbAbout.Text = "关于";
158 | this.tsbAbout.Click += new System.EventHandler(this.tsbAbout_Click);
159 | //
160 | // tsbFullScreen
161 | //
162 | this.tsbFullScreen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
163 | this.tsbFullScreen.ForeColor = System.Drawing.Color.OliveDrab;
164 | this.tsbFullScreen.Image = ((System.Drawing.Image)(resources.GetObject("tsbFullScreen.Image")));
165 | this.tsbFullScreen.ImageTransparentColor = System.Drawing.Color.Magenta;
166 | this.tsbFullScreen.Name = "tsbFullScreen";
167 | this.tsbFullScreen.Size = new System.Drawing.Size(60, 22);
168 | this.tsbFullScreen.Text = "全屏模式";
169 | this.tsbFullScreen.Click += new System.EventHandler(this.tsbFullScreen_Click);
170 | //
171 | // tsbImport
172 | //
173 | this.tsbImport.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
174 | this.tsbImport.Image = ((System.Drawing.Image)(resources.GetObject("tsbImport.Image")));
175 | this.tsbImport.ImageTransparentColor = System.Drawing.Color.Magenta;
176 | this.tsbImport.Name = "tsbImport";
177 | this.tsbImport.Size = new System.Drawing.Size(23, 22);
178 | this.tsbImport.Text = "导入服务器";
179 | this.tsbImport.Click += new System.EventHandler(this.btn_export_Click);
180 | //
181 | // statusStrip1
182 | //
183 | this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
184 | this.tsMsg,
185 | this.tsItemLabel});
186 | this.statusStrip1.Location = new System.Drawing.Point(0, 269);
187 | this.statusStrip1.Name = "statusStrip1";
188 | this.statusStrip1.Size = new System.Drawing.Size(464, 22);
189 | this.statusStrip1.TabIndex = 5;
190 | this.statusStrip1.Text = "statusStrip1";
191 | //
192 | // tsMsg
193 | //
194 | this.tsMsg.Name = "tsMsg";
195 | this.tsMsg.Size = new System.Drawing.Size(402, 17);
196 | this.tsMsg.Spring = true;
197 | this.tsMsg.Text = "开发者:广东美云智数科技有限公司";
198 | this.tsMsg.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
199 | //
200 | // tsItemLabel
201 | //
202 | this.tsItemLabel.Name = "tsItemLabel";
203 | this.tsItemLabel.Size = new System.Drawing.Size(47, 17);
204 | this.tsItemLabel.Text = "共 0 项";
205 | //
206 | // betterListView1
207 | //
208 | this.betterListView1.Columns.Add(this.chServerIp);
209 | this.betterListView1.Columns.Add(this.chUserName);
210 | this.betterListView1.Columns.Add(this.chPassword);
211 | this.betterListView1.Columns.Add(this.chRemark);
212 | this.betterListView1.ContextMenuStrip = this.contextMenuStrip1;
213 | this.betterListView1.Dock = System.Windows.Forms.DockStyle.Fill;
214 | this.betterListView1.ImageList = this.imageList1;
215 | this.betterListView1.Location = new System.Drawing.Point(0, 25);
216 | this.betterListView1.Name = "betterListView1";
217 | this.betterListView1.Size = new System.Drawing.Size(464, 244);
218 | this.betterListView1.TabIndex = 6;
219 | this.betterListView1.SelectedItemsChanged += new ComponentOwl.BetterListView.BetterListViewSelectedItemsChangedEventHandler(this.betterListView1_SelectedItemsChanged);
220 | this.betterListView1.DoubleClick += new System.EventHandler(this.betterListView1_DoubleClick);
221 | //
222 | // chServerIp
223 | //
224 | this.chServerIp.Name = "chServerIp";
225 | this.chServerIp.Text = "服务器地址";
226 | this.chServerIp.Width = 160;
227 | //
228 | // chUserName
229 | //
230 | this.chUserName.Name = "chUserName";
231 | this.chUserName.Text = "用户名";
232 | //
233 | // chPassword
234 | //
235 | this.chPassword.Name = "chPassword";
236 | this.chPassword.Text = "密码";
237 | this.chPassword.Width = 0;
238 | //
239 | // chRemark
240 | //
241 | this.chRemark.Name = "chRemark";
242 | this.chRemark.Text = "备注";
243 | //
244 | // contextMenuStrip1
245 | //
246 | this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
247 | this.tsMenuConnect,
248 | this.toolStripMenuItem1,
249 | this.tsMenuEdit,
250 | this.tsMenuDel});
251 | this.contextMenuStrip1.Name = "contextMenuStrip1";
252 | this.contextMenuStrip1.Size = new System.Drawing.Size(101, 76);
253 | //
254 | // tsMenuConnect
255 | //
256 | this.tsMenuConnect.Enabled = false;
257 | this.tsMenuConnect.Image = ((System.Drawing.Image)(resources.GetObject("tsMenuConnect.Image")));
258 | this.tsMenuConnect.Name = "tsMenuConnect";
259 | this.tsMenuConnect.Size = new System.Drawing.Size(100, 22);
260 | this.tsMenuConnect.Text = "连接";
261 | this.tsMenuConnect.Click += new System.EventHandler(this.tsMenuConnect_Click);
262 | //
263 | // toolStripMenuItem1
264 | //
265 | this.toolStripMenuItem1.Name = "toolStripMenuItem1";
266 | this.toolStripMenuItem1.Size = new System.Drawing.Size(97, 6);
267 | //
268 | // tsMenuEdit
269 | //
270 | this.tsMenuEdit.Enabled = false;
271 | this.tsMenuEdit.Image = ((System.Drawing.Image)(resources.GetObject("tsMenuEdit.Image")));
272 | this.tsMenuEdit.Name = "tsMenuEdit";
273 | this.tsMenuEdit.Size = new System.Drawing.Size(100, 22);
274 | this.tsMenuEdit.Text = "编辑";
275 | this.tsMenuEdit.Click += new System.EventHandler(this.tsMenuEdit_Click);
276 | //
277 | // tsMenuDel
278 | //
279 | this.tsMenuDel.Enabled = false;
280 | this.tsMenuDel.Image = ((System.Drawing.Image)(resources.GetObject("tsMenuDel.Image")));
281 | this.tsMenuDel.Name = "tsMenuDel";
282 | this.tsMenuDel.Size = new System.Drawing.Size(100, 22);
283 | this.tsMenuDel.Text = "删除";
284 | this.tsMenuDel.Click += new System.EventHandler(this.tsMenuDel_Click);
285 | //
286 | // imageList1
287 | //
288 | this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
289 | this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
290 | this.imageList1.Images.SetKeyName(0, "eye-shown.png");
291 | //
292 | // notifyIcon1
293 | //
294 | this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip2;
295 | this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
296 | this.notifyIcon1.Text = "简易远程桌面工具";
297 | this.notifyIcon1.Visible = true;
298 | this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);
299 | //
300 | // contextMenuStrip2
301 | //
302 | this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
303 | this.tsMenuNotifyShow,
304 | this.toolStripMenuItem2,
305 | this.tsMenuNotifyExit});
306 | this.contextMenuStrip2.Name = "contextMenuStrip2";
307 | this.contextMenuStrip2.Size = new System.Drawing.Size(101, 54);
308 | //
309 | // tsMenuNotifyShow
310 | //
311 | this.tsMenuNotifyShow.Image = ((System.Drawing.Image)(resources.GetObject("tsMenuNotifyShow.Image")));
312 | this.tsMenuNotifyShow.Name = "tsMenuNotifyShow";
313 | this.tsMenuNotifyShow.Size = new System.Drawing.Size(100, 22);
314 | this.tsMenuNotifyShow.Text = "显示";
315 | this.tsMenuNotifyShow.Click += new System.EventHandler(this.tsMenuNotifyShow_Click);
316 | //
317 | // toolStripMenuItem2
318 | //
319 | this.toolStripMenuItem2.Name = "toolStripMenuItem2";
320 | this.toolStripMenuItem2.Size = new System.Drawing.Size(97, 6);
321 | //
322 | // tsMenuNotifyExit
323 | //
324 | this.tsMenuNotifyExit.Name = "tsMenuNotifyExit";
325 | this.tsMenuNotifyExit.Size = new System.Drawing.Size(100, 22);
326 | this.tsMenuNotifyExit.Text = "退出";
327 | this.tsMenuNotifyExit.Click += new System.EventHandler(this.tsMenuNotifyExit_Click);
328 | //
329 | // tsbBatchDel
330 | //
331 | this.tsbBatchDel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
332 | this.tsbBatchDel.Image = ((System.Drawing.Image)(resources.GetObject("tsbBatchDel.Image")));
333 | this.tsbBatchDel.ImageTransparentColor = System.Drawing.Color.Magenta;
334 | this.tsbBatchDel.Name = "tsbBatchDel";
335 | this.tsbBatchDel.Size = new System.Drawing.Size(23, 22);
336 | this.tsbBatchDel.Text = "批量删除";
337 | this.tsbBatchDel.Click += new System.EventHandler(this.tsbBatchDel_Click);
338 | //
339 | // FormMain
340 | //
341 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
342 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
343 | this.ClientSize = new System.Drawing.Size(464, 291);
344 | this.Controls.Add(this.betterListView1);
345 | this.Controls.Add(this.statusStrip1);
346 | this.Controls.Add(this.toolStrip1);
347 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
348 | this.Name = "FormMain";
349 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
350 | this.Text = "简易远程桌面";
351 | this.Load += new System.EventHandler(this.FormMain_Load);
352 | this.SizeChanged += new System.EventHandler(this.FormMain_SizeChanged);
353 | this.toolStrip1.ResumeLayout(false);
354 | this.toolStrip1.PerformLayout();
355 | this.statusStrip1.ResumeLayout(false);
356 | this.statusStrip1.PerformLayout();
357 | ((System.ComponentModel.ISupportInitialize)(this.betterListView1)).EndInit();
358 | this.contextMenuStrip1.ResumeLayout(false);
359 | this.contextMenuStrip2.ResumeLayout(false);
360 | this.ResumeLayout(false);
361 | this.PerformLayout();
362 |
363 | }
364 |
365 | #endregion
366 | private System.Windows.Forms.ToolStrip toolStrip1;
367 | private System.Windows.Forms.ToolStripButton tsbConnect;
368 | private System.Windows.Forms.StatusStrip statusStrip1;
369 | private System.Windows.Forms.ToolStripStatusLabel tsItemLabel;
370 | private ComponentOwl.BetterListView.BetterListViewColumnHeader chServerIp;
371 | private ComponentOwl.BetterListView.BetterListViewColumnHeader chUserName;
372 | private ComponentOwl.BetterListView.BetterListViewColumnHeader chPassword;
373 | private ComponentOwl.BetterListView.BetterListViewColumnHeader chRemark;
374 | private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
375 | private System.Windows.Forms.ToolStripMenuItem tsMenuConnect;
376 | private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
377 | private System.Windows.Forms.ToolStripMenuItem tsMenuEdit;
378 | private System.Windows.Forms.ToolStripMenuItem tsMenuDel;
379 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
380 | private System.Windows.Forms.ToolStripButton tsbEdit;
381 | private System.Windows.Forms.ToolStripButton tsbDel;
382 | private System.Windows.Forms.ToolStripButton tsbAddData;
383 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
384 | private ComponentOwl.BetterListView.BetterListView betterListView1;
385 | private System.Windows.Forms.ToolStripButton tsbAbout;
386 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
387 | private System.Windows.Forms.ToolStripButton tsbFullScreen;
388 | private System.Windows.Forms.NotifyIcon notifyIcon1;
389 | private System.Windows.Forms.ContextMenuStrip contextMenuStrip2;
390 | private System.Windows.Forms.ToolStripMenuItem tsMenuNotifyShow;
391 | private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
392 | private System.Windows.Forms.ToolStripMenuItem tsMenuNotifyExit;
393 | private System.Windows.Forms.ImageList imageList1;
394 | private System.Windows.Forms.ToolStripStatusLabel tsMsg;
395 | private System.Windows.Forms.ToolStripButton tsbImport;
396 | private System.Windows.Forms.ToolStripButton tsbBatchDel;
397 | }
398 | }
399 |
400 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/FormMain.cs:
--------------------------------------------------------------------------------
1 | using AxMSTSCLib;
2 | using ComponentOwl.BetterListView;
3 | using NPOI.Extension;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Data;
7 | using System.Drawing;
8 | using System.IO;
9 | using System.Windows.Forms;
10 |
11 | namespace EasyRemoteDesktop
12 | {
13 | public partial class FormMain : Form
14 | {
15 | private AxMsRdpClient7NotSafeForScripting axMsRdpc = null;
16 | private bool isFullScreen = false;
17 | private List axMsRdpcArray = null;
18 |
19 | public FormMain()
20 | {
21 | InitializeComponent();
22 | axMsRdpcArray = new List();
23 | }
24 |
25 | #region 全局定义
26 | ///
27 | /// 创建远程桌面连接
28 | ///
29 | /// 参数数组 new string[] { ServerIp, UserName, Password }
30 | private void CreateAxMsRdpClient(string[] args)
31 | {
32 | string[] ServerIps = args[0].Split(':');
33 |
34 | Form axMsRdpcForm = new Form();
35 | axMsRdpcForm.ShowIcon = false;
36 | //axMsRdpcForm.StartPosition = FormStartPosition.Manual;
37 | axMsRdpcForm.Name = string.Format("Form_{0}", ServerIps[0].Replace(".", ""));
38 | axMsRdpcForm.Text = string.Format("{0} ({1})", args[3], ServerIps[0]);
39 | axMsRdpcForm.Size = new Size(1024, 768);
40 | axMsRdpcForm.FormClosed += new FormClosedEventHandler(this.axMsRdpcForm_Closed);
41 |
42 | //Rectangle ScreenArea = Screen.PrimaryScreen.Bounds;
43 | // 给axMsRdpc取个名字
44 | string _axMsRdpcName = string.Format("axMsRdpc_{0}", ServerIps[0].Replace(".", ""));
45 | if (axMsRdpcArray.Contains(_axMsRdpcName))
46 | {
47 | Global.WinMessage("此远程已经连接,请勿重复连接!"); return;
48 | }
49 | else
50 | {
51 | axMsRdpc = new AxMsRdpClient7NotSafeForScripting();
52 | }
53 | // 添加到当前缓存
54 | axMsRdpcArray.Add(_axMsRdpcName);
55 |
56 | ((System.ComponentModel.ISupportInitialize)(axMsRdpc)).BeginInit();
57 | axMsRdpc.Dock = DockStyle.Fill;
58 | axMsRdpc.Enabled = true;
59 |
60 | // 绑定连接与释放事件
61 | axMsRdpc.OnConnecting += new EventHandler(this.axMsRdpc_OnConnecting);
62 | axMsRdpc.OnDisconnected += new IMsTscAxEvents_OnDisconnectedEventHandler(this.axMsRdpc_OnDisconnected);
63 |
64 | axMsRdpcForm.Controls.Add(axMsRdpc);
65 | axMsRdpcForm.WindowState = FormWindowState.Maximized;
66 | axMsRdpcForm.Show();
67 | ((System.ComponentModel.ISupportInitialize)(axMsRdpc)).EndInit();
68 |
69 | // RDP名字
70 | axMsRdpc.Name = _axMsRdpcName;
71 | // 服务器地址
72 | axMsRdpc.Server = ServerIps[0];
73 | // 远程登录账号
74 | axMsRdpc.UserName = args[1];
75 | // 远程端口号
76 | axMsRdpc.AdvancedSettings7.RDPPort = ServerIps.Length == 1 ? 3389 : Convert.ToInt32(ServerIps[1]);
77 | //axMsRdpc.AdvancedSettings7.ContainerHandledFullScreen = 1;
78 | // 自动控制屏幕显示尺寸
79 | //axMsRdpc.AdvancedSettings7.SmartSizing = true;
80 | // 启用CredSSP身份验证(有些服务器连接没有反应,需要开启这个)
81 | axMsRdpc.AdvancedSettings7.EnableCredSspSupport = true;
82 | // 远程登录密码
83 | axMsRdpc.AdvancedSettings7.ClearTextPassword = args[2];
84 | // 禁用公共模式
85 | //axMsRdpc.AdvancedSettings7.PublicMode = false;
86 | // 颜色位数 8,16,24,32
87 | axMsRdpc.ColorDepth = 32;
88 | // 开启全屏 true|flase
89 | axMsRdpc.FullScreen = this.isFullScreen;
90 | // 设置远程桌面宽度为显示器宽度
91 | //axMsRdpc.DesktopWidth = ScreenArea.Width;
92 | axMsRdpc.DesktopWidth = axMsRdpcForm.ClientRectangle.Width;
93 | // 设置远程桌面宽度为显示器高度
94 | //axMsRdpc.DesktopHeight = ScreenArea.Height;
95 | axMsRdpc.DesktopHeight = axMsRdpcForm.ClientRectangle.Height;
96 | // 远程连接
97 | axMsRdpc.Connect();
98 | }
99 |
100 | ///
101 | /// 启动选中列表行的数据进行远程服务器连接
102 | ///
103 | private void SelectListViewRunRdpc()
104 | {
105 | if (this.betterListView1.SelectedItems.Count == 0) return;
106 |
107 | for (int i = 0; i < this.betterListView1.SelectedItems.Count; i++)
108 | {
109 | CreateAxMsRdpClient(new string[] {
110 | this.betterListView1.SelectedItems[i].SubItems[0].Text,
111 | this.betterListView1.SelectedItems[i].SubItems[1].Text,
112 | this.betterListView1.SelectedItems[i].SubItems[2].Text,
113 | this.betterListView1.SelectedItems[i].SubItems[3].Text
114 | });
115 | }
116 | }
117 |
118 | enum OperType
119 | {
120 | Add,
121 | Edit
122 | }
123 |
124 | ///
125 | /// 编辑数据
126 | ///
127 | private void AddOrEditListViewDataSource(OperType type)
128 | {
129 | AddServer frm = new AddServer();
130 | if (type == OperType.Edit)
131 | {
132 | if (this.betterListView1.SelectedItems.Count == 0) return;
133 | string serverIp = this.betterListView1.SelectedItems[0].SubItems[0].Text;
134 | frm._Action = "EDIT";
135 | frm._ServerIp = serverIp;
136 | }
137 | frm.ShowDialog();
138 | if (frm.DialogResult == DialogResult.OK)
139 | {
140 | BindsListViewDataSource();
141 | }
142 | }
143 |
144 | ///
145 | /// 根据服务器IP删除数据
146 | ///
147 | private void DeleteListViewDataSource()
148 | {
149 | if (this.betterListView1.SelectedItems.Count == 0) return;
150 |
151 | DialogResult result = MessageBox.Show("已选中 1 项数据,是否确认删除?", "删除提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
152 | if (result == DialogResult.OK)
153 | {
154 | string serverIp = this.betterListView1.SelectedItems[0].SubItems[0].Text;
155 | string where = string.Format("c0='{0}'", serverIp);
156 | new TXTClass().txtDelete(Global.dbFile, '|', where);
157 | // 重新绑定数据源
158 | BindsListViewDataSource();
159 | }
160 | }
161 |
162 | ///
163 | /// 绑定数据源
164 | ///
165 | public void BindsListViewDataSource()
166 | {
167 | this.betterListView1.Items.Clear();
168 | DataTable dt = new TXTClass().txtRead(Global.dbFile, '|');
169 | foreach (DataRow row in dt.Rows)
170 | {
171 | BetterListViewItem item = new BetterListViewItem(new string[] {
172 | row[0].ToString(),
173 | row[1].ToString(),
174 | row[2].ToString(),
175 | row[3].ToString()
176 | });
177 | item.ImageIndex = 0;
178 | this.betterListView1.Items.Add(item);
179 |
180 | }
181 | this.tsItemLabel.Text = string.Format("共 {0} 项", dt.Rows.Count);
182 | }
183 | #endregion
184 |
185 | #region 主窗体
186 | // 主窗体-窗体加载
187 | private void FormMain_Load(object sender, EventArgs e)
188 | {
189 | BindsListViewDataSource();
190 | }
191 | // 主窗体-恢复窗体
192 | private void FormMain_SizeChanged(object sender, EventArgs e)
193 | {
194 | // 隐藏任务栏图标
195 | this.ShowInTaskbar = false;
196 | }
197 | #endregion
198 |
199 | #region ListView
200 | // ListView-双击打开远程连接
201 | private void betterListView1_DoubleClick(object sender, EventArgs e)
202 | {
203 | SelectListViewRunRdpc();
204 | }
205 | // ListView-至少选中一条数据才显示可用菜单项
206 | private void betterListView1_SelectedItemsChanged(object sender, BetterListViewSelectedItemsChangedEventArgs eventArgs)
207 | {
208 | if (this.betterListView1.SelectedItems.Count == 0)
209 | {
210 | this.tsbConnect.Enabled = false;
211 | this.tsbEdit.Enabled = false;
212 | this.tsbDel.Enabled = false;
213 | this.tsMenuConnect.Enabled = false;
214 | this.tsMenuEdit.Enabled = false;
215 | this.tsMenuDel.Enabled = false;
216 | }
217 | else
218 | {
219 | this.tsbConnect.Enabled = true;
220 | this.tsbEdit.Enabled = true;
221 | this.tsbDel.Enabled = true;
222 | this.tsMenuConnect.Enabled = true;
223 | this.tsMenuEdit.Enabled = true;
224 | this.tsMenuDel.Enabled = true;
225 | }
226 | }
227 | #endregion
228 |
229 | #region 菜单栏
230 | // 菜单栏-连接
231 | private void tsbConnect_Click(object sender, EventArgs e)
232 | {
233 | SelectListViewRunRdpc();
234 | }
235 | // 菜单栏-添加
236 | private void tsbAddData_Click(object sender, EventArgs e)
237 | {
238 | AddOrEditListViewDataSource(OperType.Add);
239 | }
240 | // 菜单栏-编辑
241 | private void tsbEdit_Click(object sender, EventArgs e)
242 | {
243 | AddOrEditListViewDataSource(OperType.Edit);
244 | }
245 | // 菜单栏-删除
246 | private void tsbDel_Click(object sender, EventArgs e)
247 | {
248 | DeleteListViewDataSource();
249 | }
250 | // 菜单栏-全屏模式
251 | private void tsbFullScreen_Click(object sender, EventArgs e)
252 | {
253 | this.isFullScreen = !this.isFullScreen;
254 | this.WindowState = !this.isFullScreen ? FormWindowState.Normal : FormWindowState.Maximized;
255 | if (this.isFullScreen)
256 | {
257 | this.tsbFullScreen.Text = "取消全屏";
258 | this.tsbFullScreen.ForeColor = Color.Gray;
259 | }
260 | else
261 | {
262 | this.tsbFullScreen.Text = "全屏模式";
263 | this.tsbFullScreen.ForeColor = Color.OliveDrab;
264 | }
265 | }
266 | // 菜单栏-关于
267 | private void tsbAbout_Click(object sender, EventArgs e)
268 | {
269 | FormAbout frm = new FormAbout();
270 | frm.ShowDialog();
271 | }
272 | #endregion
273 |
274 | #region 右键菜单
275 | // 右键菜单-连接
276 | private void tsMenuConnect_Click(object sender, EventArgs e)
277 | {
278 | SelectListViewRunRdpc();
279 | }
280 | // 右键菜单-编辑
281 | private void tsMenuEdit_Click(object sender, EventArgs e)
282 | {
283 | AddOrEditListViewDataSource(OperType.Edit);
284 | }
285 | // 右键菜单-删除
286 | private void tsMenuDel_Click(object sender, EventArgs e)
287 | {
288 | DeleteListViewDataSource();
289 | }
290 | #endregion
291 |
292 | #region 托盘菜单
293 | // 托盘菜单-双击托盘图标
294 | private void notifyIcon1_DoubleClick(object sender, EventArgs e)
295 | {
296 | this.tsMenuNotifyShow_Click(sender, e);
297 | }
298 | // 托盘菜单-显示窗口
299 | private void tsMenuNotifyShow_Click(object sender, EventArgs e)
300 | {
301 | // 还原窗口
302 | WindowState = FormWindowState.Normal;
303 | // 显示任务栏图标
304 | this.ShowInTaskbar = true;
305 | }
306 | // 托盘菜单-退出
307 | private void tsMenuNotifyExit_Click(object sender, EventArgs e)
308 | {
309 | Application.ExitThread();
310 | Application.Exit();
311 | }
312 | #endregion
313 |
314 | #region 远程桌面组件axMsRdpc
315 | // 远程桌面-连接
316 | private void axMsRdpc_OnConnecting(object sender, EventArgs e)
317 | {
318 | var _axMsRdp = sender as AxMsRdpClient7NotSafeForScripting;
319 | _axMsRdp.ConnectingText = _axMsRdp.GetStatusText(Convert.ToUInt32(_axMsRdp.Connected));
320 | _axMsRdp.FindForm().WindowState = FormWindowState.Normal;
321 | }
322 | // 远程桌面-连接断开
323 | private void axMsRdpc_OnDisconnected(object sender, IMsTscAxEvents_OnDisconnectedEvent e)
324 | {
325 | var _axMsRdp = sender as AxMsRdpClient7NotSafeForScripting;
326 | string disconnectedText = string.Format("远程桌面 {0} 连接已断开!", _axMsRdp.Server);
327 | _axMsRdp.DisconnectedText = disconnectedText;
328 | _axMsRdp.FindForm().Close();
329 | Global.WinMessage(disconnectedText, "远程连接");
330 |
331 | }
332 | #endregion
333 |
334 | #region 远程桌面窗体axMsRdpcForm
335 | // 远程桌面窗体-关闭
336 | private void axMsRdpcForm_Closed(object sender, FormClosedEventArgs e)
337 | {
338 | Form frm = (Form)sender;
339 | //MessageBox.Show(frm.Controls[0].GetType().ToString());
340 | foreach (Control ctrl in frm.Controls)
341 | {
342 | // 找到当前打开窗口下面的远程桌面
343 | if (ctrl.GetType().ToString() == "AxMSTSCLib.AxMsRdpClient7NotSafeForScripting")
344 | {
345 | // 释放缓存
346 | if (axMsRdpcArray.Contains(ctrl.Name)) axMsRdpcArray.Remove(ctrl.Name);
347 | // 断开连接
348 | var _axMsRdp = ctrl as AxMsRdpClient7NotSafeForScripting;
349 | if (_axMsRdp.Connected != 0)
350 | {
351 | _axMsRdp.Disconnect();
352 | _axMsRdp.Dispose();
353 | }
354 | }
355 | }
356 | }
357 | #endregion
358 |
359 | private void btn_export_Click(object sender, EventArgs e)
360 | {
361 | try
362 | {
363 | //选择文件的功能做一下。
364 | string excelPath = null;
365 | OpenFileDialog fileDialog = new OpenFileDialog();
366 | fileDialog.Title = "请选择文件";
367 | fileDialog.Filter = "所有文件(*xls*)|*.xls*";
368 | if (fileDialog.ShowDialog() == DialogResult.OK)
369 | {
370 | excelPath = fileDialog.FileName;
371 | }
372 | else
373 | {
374 | return;
375 | }
376 | var serverInfos = Excel.Load(excelPath);
377 | foreach (var server in serverInfos)
378 | {
379 | if (server.Ip != null)
380 | {
381 | string userName = server.UserName.Split('/')[0].ToString();
382 | string pwd = server.Password.Split('/')[1].ToString();
383 | BetterListViewItem item = new BetterListViewItem(new string[] {
384 | server.Ip.ToString(),
385 | userName,
386 | pwd,
387 | server.Remark
388 | });
389 | item.ImageIndex = 0;
390 | string data = string.Format("{0}|{1}|{2}|{3}", server.Ip, userName, pwd, server.Remark);
391 | new TXTClass().txtWrite(Global.dbFile, data);
392 | }
393 | //this.betterListView1.Items.Add(item);
394 | }
395 | BindsListViewDataSource();
396 | }
397 | catch (Exception ex)
398 | {
399 | MessageBox.Show("请检查用户和密码,以及备注是否为空");
400 | }
401 | }
402 |
403 | private void tsbBatchDel_Click(object sender, EventArgs e)
404 | {
405 | DialogResult result = MessageBox.Show("是否确认全部删除?", "删除提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
406 | if (result == DialogResult.OK)
407 | {
408 | new TXTClass().txtBatchDelete(Global.dbFile);
409 | // 重新绑定数据源
410 | BindsListViewDataSource();
411 | }
412 |
413 | }
414 | }
415 |
416 |
417 | public class ServerInfo
418 | {
419 | [Column(Index = 1, Title = "账号密码")]
420 | public string UserName { get; set; }
421 |
422 |
423 | [Column(Index = 0, Title = "ip")]
424 | public string Ip { get; set; }
425 |
426 |
427 | [Column(Index = 1, Title = "账号密码")]
428 | public string Password { get; set; }
429 |
430 |
431 | [Column(Index = 2, Title = "备注")]
432 | public string Remark { get; set; }
433 |
434 | public override string ToString()
435 | {
436 | return Ip + UserName + Remark + Password;
437 | }
438 |
439 | }
440 | }
441 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Global.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Forms;
2 | using System.Text.RegularExpressions;
3 |
4 | namespace EasyRemoteDesktop
5 | {
6 | class Global
7 | {
8 | public static string dbFile = @"WinRemoteDesktop.db";
9 |
10 | public static bool IsServerAddress(string s)
11 | {
12 | string text1 = @"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?$"; //(:?)\d{1,5}$
13 | return Regex.IsMatch(s, text1);
14 | }
15 |
16 | public static void WinMessage(string msg, string caption = "操作提示")
17 | {
18 | MessageBox.Show(msg, caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Icon/1121740.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/Icon/1121740.png
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Icon/Remote.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/Icon/Remote.ico
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Lib/BetterListViewExpress.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/Lib/BetterListViewExpress.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace EasyRemoteDesktop
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// 应用程序的主入口点。
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new FormMain());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("EasyRemoteDesktop")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("EasyRemoteDesktop")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 会使此程序集中的类型
18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("1c5f1c4c-d1fb-4bb9-90d1-3daa6acaa697")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
33 | //通过使用 "*",如下所示:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本: 4.0.30319.42000
5 | //
6 | // 对此文件的更改可能导致不正确的行为,如果
7 | // 重新生成代码,则所做更改将丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace EasyRemoteDesktop.Properties
12 | {
13 |
14 |
15 | ///
16 | /// 强类型资源类,用于查找本地化字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// 返回此类使用的缓存 ResourceManager 实例。
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EasyRemoteDesktop.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// 覆盖当前线程的 CurrentUICulture 属性
56 | /// 使用此强类型的资源类的资源查找。
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace EasyRemoteDesktop.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/TXTClass.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Data;
3 | using System.IO;
4 | using System.Windows.Forms;
5 |
6 | namespace EasyRemoteDesktop
7 | {
8 | class TXTClass
9 | {
10 | ///
11 | /// 文件不存在则自动创建
12 | ///
13 | public void FileNotExistAndCreate(string filepath)
14 | {
15 | if (!File.Exists(filepath)) new FileStream(filepath, FileMode.Create, FileAccess.Write).Close();
16 | }
17 | ///
18 | /// 按照指定条件对DataTable内容进行查询,查询结果以DataTable形式返回
19 | ///
20 | /// 待查询DataTable
21 | /// 查询条件(例如condition="c0='0' and c1='2'")
22 | ///
23 | public DataTable DataTable_Select(DataTable dt, string condition)
24 | {
25 | DataTable table = new DataTable();
26 | try
27 | {
28 | DataRow[] rowArray = dt.Select(condition);
29 | DataRow[] rowArray2 = rowArray;
30 | table = dt.Clone();
31 | if (rowArray.Length <= 0)
32 | {
33 | return table;
34 | }
35 | for (int i = 0; i < rowArray.Length; i++)
36 | {
37 | table.Rows.Add(rowArray2[i].ItemArray);
38 | }
39 | table.AcceptChanges();
40 | }
41 | catch (Exception exception)
42 | {
43 | string text = exception.ToString();
44 | if (exception.InnerException != null)
45 | {
46 | text = text + exception.InnerException.ToString();
47 | }
48 | if (exception.StackTrace != null)
49 | {
50 | text = text + exception.StackTrace.ToString();
51 | }
52 | MessageBox.Show(text);
53 | }
54 | return table;
55 | }
56 |
57 | ///
58 | /// 按照指定条件对DataTable内容进行查询,查询结果以DataTable形式返回
59 | ///
60 | /// 待查询DataTable
61 | /// 查询条件1(例如condition="c0='0' and c1='2'")
62 | /// 查询条件2,该条件为排序条件(例如ordercondition="c1 desc")
63 | ///
64 | public DataTable DataTable_Select(DataTable dt, string condition, string ordercondition)
65 | {
66 | DataTable table = new DataTable();
67 | try
68 | {
69 | DataRow[] rowArray = dt.Select(condition, ordercondition);
70 | table = dt.Clone();
71 | if (rowArray.Length <= 0)
72 | {
73 | return table;
74 | }
75 | for (int i = 0; i < rowArray.Length; i++)
76 | {
77 | table.Rows.Add(rowArray[i].ItemArray);
78 | }
79 | table.AcceptChanges();
80 | }
81 | catch (Exception exception)
82 | {
83 | string text = exception.ToString();
84 | if (exception.InnerException != null)
85 | {
86 | text = text + exception.InnerException.ToString();
87 | }
88 | if (exception.StackTrace != null)
89 | {
90 | text = text + exception.StackTrace.ToString();
91 | }
92 | MessageBox.Show(text);
93 | }
94 | return table;
95 | }
96 |
97 | ///
98 | /// 读取txt文件内容,读取结果以字符串形式返回
99 | ///
100 | public string txtRead(string filepath)
101 | {
102 | string str = "";
103 | try
104 | {
105 | this.FileNotExistAndCreate(filepath);
106 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
107 | StreamReader reader = new StreamReader(stream);
108 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
109 | str = reader.ReadToEnd();
110 | reader.Close();
111 | stream.Close();
112 | }
113 | catch (Exception exception)
114 | {
115 | string text = exception.ToString();
116 | if (exception.InnerException != null)
117 | {
118 | text = text + exception.InnerException.ToString();
119 | }
120 | if (exception.StackTrace != null)
121 | {
122 | text = text + exception.StackTrace.ToString();
123 | }
124 | MessageBox.Show(text);
125 | }
126 | return str;
127 | }
128 |
129 | ///
130 | /// 读取txt文件内容,读取结果以DataTable(列名分别为c0,c1,c2,c3,... ...)形式返回
131 | ///
132 | /// txt文件每一行中不同列之间的分隔符
133 | ///
134 | public DataTable txtRead(string filepath, char split)
135 | {
136 | DataTable table = new DataTable();
137 | try
138 | {
139 | string str2;
140 | this.FileNotExistAndCreate(filepath);
141 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
142 | StreamReader reader = new StreamReader(stream);
143 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
144 | string str = reader.ReadLine();
145 | switch (str)
146 | {
147 | case "":
148 | case null:
149 | return table;
150 | }
151 | int length = str.Split(new char[] { split }).Length;
152 | for (int i = 0; i < length; i++)
153 | {
154 | str2 = "c" + i.ToString();
155 | table.Columns.Add(str2, typeof(string));
156 | }
157 | while ((str != null) && (str != ""))
158 | {
159 | string[] strArray2 = str.Split(new char[] { split });
160 | DataRow row = table.NewRow();
161 | for (int j = 0; j < length; j++)
162 | {
163 | str2 = "c" + j.ToString();
164 | row[str2] = strArray2[j];
165 | }
166 | table.Rows.Add(row);
167 | table.AcceptChanges();
168 | str = reader.ReadLine();
169 | }
170 | reader.Close();
171 | stream.Close();
172 | }
173 | catch (Exception exception)
174 | {
175 | string text = exception.ToString();
176 | if (exception.InnerException != null)
177 | {
178 | text = text + exception.InnerException.ToString();
179 | }
180 | if (exception.StackTrace != null)
181 | {
182 | text = text + exception.StackTrace.ToString();
183 | }
184 | MessageBox.Show(text);
185 | }
186 | return table;
187 | }
188 |
189 | public DataTable txtRead(string filepath, char[] split)
190 | {
191 | DataTable table = new DataTable();
192 | try
193 | {
194 | string str2;
195 | this.FileNotExistAndCreate(filepath);
196 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
197 | StreamReader reader = new StreamReader(stream);
198 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
199 | string str = reader.ReadLine();
200 | switch (str)
201 | {
202 | case "":
203 | case null:
204 | return table;
205 | }
206 | int length = str.Split(split).Length;
207 | for (int i = 0; i < length; i++)
208 | {
209 | str2 = "c" + i.ToString();
210 | table.Columns.Add(str2, typeof(string));
211 | }
212 | while ((str != null) && (str != ""))
213 | {
214 | string[] strArray2 = str.Split(split);
215 | DataRow row = table.NewRow();
216 | for (int j = 0; j < length; j++)
217 | {
218 | str2 = "c" + j.ToString();
219 | row[str2] = strArray2[j];
220 | }
221 | table.Rows.Add(row);
222 | table.AcceptChanges();
223 | str = reader.ReadLine();
224 | }
225 | reader.Close();
226 | stream.Close();
227 | }
228 | catch (Exception exception)
229 | {
230 | string text = exception.ToString();
231 | if (exception.InnerException != null)
232 | {
233 | text = text + exception.InnerException.ToString();
234 | }
235 | if (exception.StackTrace != null)
236 | {
237 | text = text + exception.StackTrace.ToString();
238 | }
239 | MessageBox.Show(text);
240 | }
241 | return table;
242 | }
243 |
244 | ///
245 | /// 读取指定行的内容,结果以字符串的形式返回
246 | ///
247 | /// 指定读取txt文件中的第几行
248 | ///
249 | public string txtRead(string filepath, int rowbh)
250 | {
251 | string str = "";
252 | try
253 | {
254 | this.FileNotExistAndCreate(filepath);
255 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
256 | StreamReader reader = new StreamReader(stream);
257 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
258 | int num = 0;
259 | for (string str2 = reader.ReadLine(); str2 != null; str2 = reader.ReadLine())
260 | {
261 | num++;
262 | if (num == rowbh)
263 | {
264 | str = str2;
265 | break;
266 | }
267 | }
268 | reader.Close();
269 | stream.Close();
270 | }
271 | catch (Exception exception)
272 | {
273 | string text = exception.ToString();
274 | if (exception.InnerException != null)
275 | {
276 | text = text + exception.InnerException.ToString();
277 | }
278 | if (exception.StackTrace != null)
279 | {
280 | text = text + exception.StackTrace.ToString();
281 | }
282 | MessageBox.Show(text);
283 | }
284 | return str;
285 | }
286 |
287 | ///
288 | /// 以指定条件读取txt文件内容,读取结果以DataTable(列名分别为c0,c1,c2,c3,... ...)形式返回
289 | ///
290 | /// txt文件每一行中不同列之间的分隔符
291 | /// 读取条件(例如condition="c0='0' and c1='2'")
292 | ///
293 | public DataTable txtRead(string filepath, char split, string condition)
294 | {
295 | DataTable table = new DataTable();
296 | try
297 | {
298 | int num2;
299 | string str2;
300 | this.FileNotExistAndCreate(filepath);
301 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
302 | StreamReader reader = new StreamReader(stream);
303 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
304 | string str = reader.ReadLine();
305 | switch (str)
306 | {
307 | case "":
308 | case null:
309 | return table;
310 | }
311 | int length = str.Split(new char[] { split }).Length;
312 | DataTable table2 = new DataTable();
313 | for (num2 = 0; num2 < length; num2++)
314 | {
315 | str2 = "c" + num2.ToString();
316 | table2.Columns.Add(str2, typeof(string));
317 | }
318 | while ((str != null) && (str != ""))
319 | {
320 | string[] strArray2 = str.Split(new char[] { split });
321 | DataRow row = table2.NewRow();
322 | for (int i = 0; i < length; i++)
323 | {
324 | str2 = "c" + i.ToString();
325 | row[str2] = strArray2[i];
326 | }
327 | table2.Rows.Add(row);
328 | table2.AcceptChanges();
329 | str = reader.ReadLine();
330 | }
331 | reader.Close();
332 | stream.Close();
333 | DataRow[] rowArray = table2.Select(condition);
334 | table = table2.Clone();
335 | if (rowArray.Length > 0)
336 | {
337 | for (num2 = 0; num2 < rowArray.Length; num2++)
338 | {
339 | table.Rows.Add(rowArray[num2].ItemArray);
340 | }
341 | table.AcceptChanges();
342 | }
343 | }
344 | catch (Exception exception)
345 | {
346 | string text = exception.ToString();
347 | if (exception.InnerException != null)
348 | {
349 | text = text + exception.InnerException.ToString();
350 | }
351 | if (exception.StackTrace != null)
352 | {
353 | text = text + exception.StackTrace.ToString();
354 | }
355 | MessageBox.Show(text);
356 | }
357 | return table;
358 | }
359 |
360 | public DataTable txtRead(string filepath, char[] split, string condition)
361 | {
362 | DataTable table = new DataTable();
363 | try
364 | {
365 | int num2;
366 | string str2;
367 | this.FileNotExistAndCreate(filepath);
368 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
369 | StreamReader reader = new StreamReader(stream);
370 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
371 | string str = reader.ReadLine();
372 | switch (str)
373 | {
374 | case "":
375 | case null:
376 | return table;
377 | }
378 | int length = str.Split(split).Length;
379 | DataTable table2 = new DataTable();
380 | for (num2 = 0; num2 < length; num2++)
381 | {
382 | str2 = "c" + num2.ToString();
383 | table2.Columns.Add(str2, typeof(string));
384 | }
385 | while ((str != null) && (str != ""))
386 | {
387 | string[] strArray2 = str.Split(split);
388 | DataRow row = table2.NewRow();
389 | for (int i = 0; i < length; i++)
390 | {
391 | str2 = "c" + i.ToString();
392 | row[str2] = strArray2[i];
393 | }
394 | table2.Rows.Add(row);
395 | table2.AcceptChanges();
396 | str = reader.ReadLine();
397 | }
398 | reader.Close();
399 | stream.Close();
400 | DataRow[] rowArray = table2.Select(condition);
401 | table = table2.Clone();
402 | if (rowArray.Length > 0)
403 | {
404 | for (num2 = 0; num2 < rowArray.Length; num2++)
405 | {
406 | table.Rows.Add(rowArray[num2].ItemArray);
407 | }
408 | table.AcceptChanges();
409 | }
410 | }
411 | catch (Exception exception)
412 | {
413 | string text = exception.ToString();
414 | if (exception.InnerException != null)
415 | {
416 | text = text + exception.InnerException.ToString();
417 | }
418 | if (exception.StackTrace != null)
419 | {
420 | text = text + exception.StackTrace.ToString();
421 | }
422 | MessageBox.Show(text);
423 | }
424 | return table;
425 | }
426 |
427 | ///
428 | /// 以指定条件读取txt文件内容,读取结果以DataTable(列名分别为c0,c1,c2,c3,... ...)形式返回
429 | ///
430 | /// 文件每一行中不同列之间的分隔符
431 | /// 读取条件1(例如condition="c0='0' and c1='2'")
432 | /// 读取条件2,该条件为排序条件(例如ordercondition="c1 desc")
433 | ///
434 | public DataTable txtRead(string filepath, char split, string condition, string ordercondition)
435 | {
436 | DataTable table = new DataTable();
437 | try
438 | {
439 | int num2;
440 | string str2;
441 | this.FileNotExistAndCreate(filepath);
442 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
443 | StreamReader reader = new StreamReader(stream);
444 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
445 | string str = reader.ReadLine();
446 | switch (str)
447 | {
448 | case "":
449 | case null:
450 | return table;
451 | }
452 | int length = str.Split(new char[] { split }).Length;
453 | DataTable table2 = new DataTable();
454 | for (num2 = 0; num2 < length; num2++)
455 | {
456 | str2 = "c" + num2.ToString();
457 | table2.Columns.Add(str2, typeof(string));
458 | }
459 | while ((str != null) && (str != ""))
460 | {
461 | string[] strArray2 = str.Split(new char[] { split });
462 | DataRow row = table2.NewRow();
463 | for (int i = 0; i < length; i++)
464 | {
465 | str2 = "c" + i.ToString();
466 | row[str2] = strArray2[i];
467 | }
468 | table2.Rows.Add(row);
469 | table2.AcceptChanges();
470 | str = reader.ReadLine();
471 | }
472 | reader.Close();
473 | stream.Close();
474 | DataRow[] rowArray = table2.Select(condition, ordercondition);
475 | table = table2.Clone();
476 | if (rowArray.Length > 0)
477 | {
478 | for (num2 = 0; num2 < rowArray.Length; num2++)
479 | {
480 | table.Rows.Add(rowArray[num2].ItemArray);
481 | }
482 | table.AcceptChanges();
483 | }
484 | }
485 | catch (Exception exception)
486 | {
487 | string text = exception.ToString();
488 | if (exception.InnerException != null)
489 | {
490 | text = text + exception.InnerException.ToString();
491 | }
492 | if (exception.StackTrace != null)
493 | {
494 | text = text + exception.StackTrace.ToString();
495 | }
496 | MessageBox.Show(text);
497 | }
498 | return table;
499 | }
500 |
501 | public DataTable txtRead(string filepath, char[] split, string condition, string ordercondition)
502 | {
503 | DataTable table = new DataTable();
504 | try
505 | {
506 | int num2;
507 | string str2;
508 | this.FileNotExistAndCreate(filepath);
509 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
510 | StreamReader reader = new StreamReader(stream);
511 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
512 | string str = reader.ReadLine();
513 | switch (str)
514 | {
515 | case "":
516 | case null:
517 | return table;
518 | }
519 | int length = str.Split(split).Length;
520 | DataTable table2 = new DataTable();
521 | for (num2 = 0; num2 < length; num2++)
522 | {
523 | str2 = "c" + num2.ToString();
524 | table2.Columns.Add(str2, typeof(string));
525 | }
526 | while ((str != null) && (str != ""))
527 | {
528 | string[] strArray2 = str.Split(split);
529 | DataRow row = table2.NewRow();
530 | for (int i = 0; i < length; i++)
531 | {
532 | str2 = "c" + i.ToString();
533 | row[str2] = strArray2[i];
534 | }
535 | table2.Rows.Add(row);
536 | table2.AcceptChanges();
537 | str = reader.ReadLine();
538 | }
539 | reader.Close();
540 | stream.Close();
541 | DataRow[] rowArray = table2.Select(condition, ordercondition);
542 | table = table2.Clone();
543 | if (rowArray.Length > 0)
544 | {
545 | for (num2 = 0; num2 < rowArray.Length; num2++)
546 | {
547 | table.Rows.Add(rowArray[num2].ItemArray);
548 | }
549 | table.AcceptChanges();
550 | }
551 | }
552 | catch (Exception exception)
553 | {
554 | string text = exception.ToString();
555 | if (exception.InnerException != null)
556 | {
557 | text = text + exception.InnerException.ToString();
558 | }
559 | if (exception.StackTrace != null)
560 | {
561 | text = text + exception.StackTrace.ToString();
562 | }
563 | MessageBox.Show(text);
564 | }
565 | return table;
566 | }
567 |
568 | ///
569 | /// 向txt文件写入一行内容
570 | ///
571 | /// 写入内容
572 | public void txtWrite(string filepath, string str)
573 | {
574 | try
575 | {
576 | this.FileNotExistAndCreate(filepath);
577 | FileStream stream = new FileStream(filepath, FileMode.Append, FileAccess.Write);
578 | StreamWriter writer = new StreamWriter(stream);
579 | writer.WriteLine(str);
580 | writer.Flush();
581 | writer.Close();
582 | stream.Close();
583 | }
584 | catch (Exception exception)
585 | {
586 | string text = exception.ToString();
587 | if (exception.InnerException != null)
588 | {
589 | text = text + exception.InnerException.ToString();
590 | }
591 | if (exception.StackTrace != null)
592 | {
593 | text = text + exception.StackTrace.ToString();
594 | }
595 | MessageBox.Show(text);
596 | }
597 | }
598 |
599 | ///
600 | /// 按照指定条件删除txt文件中的内容
601 | ///
602 | /// txt文件每一行中不同列之间的分隔符
603 | /// 删除条件(例如condition="c0='0' and c1='2'")
604 | public void txtDelete(string filepath, char split, string condition)
605 | {
606 | DataTable table = new DataTable();
607 | try
608 | {
609 | this.FileNotExistAndCreate(filepath);
610 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
611 | StreamReader reader = new StreamReader(stream);
612 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
613 | string str = reader.ReadLine();
614 | if ((str != "") && (str != null))
615 | {
616 | int num2;
617 | string str2;
618 | int num3;
619 | int length = str.Split(new char[] { split }).Length;
620 | for (num2 = 0; num2 < length; num2++)
621 | {
622 | str2 = "c" + num2.ToString();
623 | table.Columns.Add(str2, typeof(string));
624 | }
625 | while ((str != null) && (str != ""))
626 | {
627 | string[] strArray2 = str.Split(new char[] { split });
628 | DataRow row = table.NewRow();
629 | num3 = 0;
630 | while (num3 < length)
631 | {
632 | str2 = "c" + num3.ToString();
633 | row[str2] = strArray2[num3];
634 | num3++;
635 | }
636 | table.Rows.Add(row);
637 | table.AcceptChanges();
638 | str = reader.ReadLine();
639 | }
640 | reader.Close();
641 | stream.Close();
642 | DataRow[] rowArray = table.Select(condition);
643 | if (rowArray.Length > 0)
644 | {
645 | for (num2 = 0; num2 < rowArray.Length; num2++)
646 | {
647 | table.Rows.Remove(rowArray[num2]);
648 | }
649 | table.AcceptChanges();
650 | }
651 | File.Delete(filepath);
652 | File.Create(filepath).Close();
653 | for (num2 = 0; num2 < table.Rows.Count; num2++)
654 | {
655 | string str3 = table.Rows[num2]["c0"].ToString();
656 | for (num3 = 1; num3 < length; num3++)
657 | {
658 | str2 = "c" + num3.ToString();
659 | string str4 = table.Rows[num2][str2].ToString();
660 | str3 = str3 + split + str4;
661 | }
662 | this.txtWrite(filepath, str3);
663 | }
664 | }
665 | }
666 | catch (Exception exception)
667 | {
668 | string text = exception.ToString();
669 | if (exception.InnerException != null)
670 | {
671 | text = text + exception.InnerException.ToString();
672 | }
673 | if (exception.StackTrace != null)
674 | {
675 | text = text + exception.StackTrace.ToString();
676 | }
677 | MessageBox.Show(text);
678 | }
679 | }
680 |
681 | public void txtBatchDelete(string filePath)
682 | {
683 | if (File.Exists(filePath))
684 | {
685 | File.Delete(filePath);
686 | }
687 | this.FileNotExistAndCreate(filePath);
688 |
689 | }
690 |
691 | ///
692 | /// 按照指定条件修改txt文件中的内容
693 | ///
694 | /// txt文件每一行中不同列之间的分隔符
695 | /// txt文件中要修改的内容
696 | /// 删除条件(例如condition="c0='0' and c1='2'")
697 | public void txtModify(string filepath, char split, string content, string condition)
698 | {
699 | DataTable table = new DataTable();
700 | try
701 | {
702 | this.FileNotExistAndCreate(filepath);
703 | FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
704 | StreamReader reader = new StreamReader(stream);
705 | reader.BaseStream.Seek(0L, SeekOrigin.Begin);
706 | string str = reader.ReadLine();
707 | if ((str != "") && (str != null))
708 | {
709 | int num2;
710 | string str2;
711 | int num3;
712 | int length = str.Split(new char[] { split }).Length;
713 | for (num2 = 0; num2 < length; num2++)
714 | {
715 | str2 = "c" + num2.ToString();
716 | table.Columns.Add(str2, typeof(string));
717 | }
718 | while ((str != null) && (str != ""))
719 | {
720 | string[] strArray2 = str.Split(new char[] { split });
721 | DataRow row = table.NewRow();
722 | num3 = 0;
723 | while (num3 < length)
724 | {
725 | str2 = "c" + num3.ToString();
726 | row[str2] = strArray2[num3];
727 | num3++;
728 | }
729 | table.Rows.Add(row);
730 | table.AcceptChanges();
731 | str = reader.ReadLine();
732 | }
733 | reader.Close();
734 | stream.Close();
735 | DataRow[] rowArray = table.Select(condition);
736 | if (rowArray.Length > 0)
737 | {
738 | for (num2 = 0; num2 < rowArray.Length; num2++)
739 | {
740 | string[] newArray = content.Split(new char[] { split });
741 | rowArray[num2].BeginEdit();
742 | for (int col = 0; col < newArray.Length; col++)
743 | {
744 | rowArray[num2][col] = newArray[col];
745 | }
746 | rowArray[num2].EndEdit();
747 | }
748 | table.AcceptChanges();
749 | }
750 | File.Delete(filepath);
751 | File.Create(filepath).Close();
752 | for (num2 = 0; num2 < table.Rows.Count; num2++)
753 | {
754 | string str3 = table.Rows[num2]["c0"].ToString();
755 | for (num3 = 1; num3 < length; num3++)
756 | {
757 | str2 = "c" + num3.ToString();
758 | string str4 = table.Rows[num2][str2].ToString();
759 | str3 = str3 + split + str4;
760 | }
761 | this.txtWrite(filepath, str3);
762 | }
763 | }
764 | }
765 | catch (Exception exception)
766 | {
767 | string text = exception.ToString();
768 | if (exception.InnerException != null)
769 | {
770 | text = text + exception.InnerException.ToString();
771 | }
772 | if (exception.StackTrace != null)
773 | {
774 | text = text + exception.StackTrace.ToString();
775 | }
776 | MessageBox.Show(text);
777 | }
778 | }
779 | }
780 | }
781 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/AxInterop.MSTSCLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/AxInterop.MSTSCLib.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/BetterListViewExpress.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/BetterListViewExpress.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/EasyRemoteDesktop.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/EasyRemoteDesktop.exe
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/EasyRemoteDesktop.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/EasyRemoteDesktop.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/EasyRemoteDesktop.pdb
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/ICSharpCode.SharpZipLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/ICSharpCode.SharpZipLib.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/Interop.MSTSCLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/Interop.MSTSCLib.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/NPOI.Extension.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/NPOI.Extension.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/NPOI.OOXML.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/NPOI.OOXML.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/NPOI.OpenXml4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/NPOI.OpenXml4Net.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/NPOI.OpenXmlFormats.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/NPOI.OpenXmlFormats.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/NPOI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/NPOI.dll
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/WinRemoteDesktop.db:
--------------------------------------------------------------------------------
1 | 10.158.33.47|administrator|123456|清洁电器苏州工厂(主)
2 | 10.158.33.48|administrator|123456|苏州工厂(从)
3 | 10.158.33.57|administrator|123456|苏州工厂(主1)
4 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/bin/Debug/服务器清单.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/bin/Debug/服务器清单.xlsx
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs:
--------------------------------------------------------------------------------
1 | //
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
5 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/DesignTimeResolveAssemblyReferences.cache
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.AddServer.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.AddServer.resources
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.FormAbout.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.FormAbout.resources
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.FormMain.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.FormMain.resources
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.Properties.Resources.resources
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csproj.CopyComplete:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csproj.CopyComplete
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csproj.CoreCompileInputs.cache:
--------------------------------------------------------------------------------
1 | a83db5bade9aa2991a8b455323295e0c2f14bdef
2 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.Properties.Resources.resources
2 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.csproj.GenerateResource.cache
3 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.csproj.CoreCompileInputs.cache
4 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\EasyRemoteDesktop.exe.config
5 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\EasyRemoteDesktop.exe
6 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\EasyRemoteDesktop.pdb
7 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\AxInterop.MSTSCLib.dll
8 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\BetterListViewExpress.dll
9 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\ICSharpCode.SharpZipLib.dll
10 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\NPOI.dll
11 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\NPOI.Extension.dll
12 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\NPOI.OOXML.dll
13 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\NPOI.OpenXml4Net.dll
14 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\NPOI.OpenXmlFormats.dll
15 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\NPOI.xml
16 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.FormAbout.resources
17 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.AddServer.resources
18 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.FormMain.resources
19 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.csproj.CopyComplete
20 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.exe
21 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.pdb
22 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\bin\Debug\Interop.MSTSCLib.dll
23 | D:\other\EasyRemote\EasyRemote\EasyRemoteDesktop\obj\Debug\EasyRemoteDesktop.csprojAssemblyReference.cache
24 |
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csproj.GenerateResource.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csproj.GenerateResource.cache
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csprojAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.csprojAssemblyReference.cache
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.exe
--------------------------------------------------------------------------------
/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/EasyRemoteDesktop/obj/Debug/EasyRemoteDesktop.pdb
--------------------------------------------------------------------------------
/EasyRemoteDesktop/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # EasyRemote
2 | EasyRemote 简易的远程桌面工具
3 | 
4 | 操作说明:https://www.cnblogs.com/gdouzz/p/13140598.html
5 |
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/.signature.p7s
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction, and
10 | distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by the copyright
13 | owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all other entities
16 | that control, are controlled by, or are under common control with that entity.
17 | For the purposes of this definition, "control" means (i) the power, direct or
18 | indirect, to cause the direction or management of such entity, whether by
19 | contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
20 | outstanding shares, or (iii) beneficial ownership of such entity.
21 |
22 | "You" (or "Your") shall mean an individual or Legal Entity exercising
23 | permissions granted by this License.
24 |
25 | "Source" form shall mean the preferred form for making modifications, including
26 | but not limited to software source code, documentation source, and configuration
27 | files.
28 |
29 | "Object" form shall mean any form resulting from mechanical transformation or
30 | translation of a Source form, including but not limited to compiled object code,
31 | generated documentation, and conversions to other media types.
32 |
33 | "Work" shall mean the work of authorship, whether in Source or Object form, made
34 | available under the License, as indicated by a copyright notice that is included
35 | in or attached to the work (an example is provided in the Appendix below).
36 |
37 | "Derivative Works" shall mean any work, whether in Source or Object form, that
38 | is based on (or derived from) the Work and for which the editorial revisions,
39 | annotations, elaborations, or other modifications represent, as a whole, an
40 | original work of authorship. For the purposes of this License, Derivative Works
41 | shall not include works that remain separable from, or merely link (or bind by
42 | name) to the interfaces of, the Work and Derivative Works thereof.
43 |
44 | "Contribution" shall mean any work of authorship, including the original version
45 | of the Work and any modifications or additions to that Work or Derivative Works
46 | thereof, that is intentionally submitted to Licensor for inclusion in the Work
47 | by the copyright owner or by an individual or Legal Entity authorized to submit
48 | on behalf of the copyright owner. For the purposes of this definition,
49 | "submitted" means any form of electronic, verbal, or written communication sent
50 | to the Licensor or its representatives, including but not limited to
51 | communication on electronic mailing lists, source code control systems, and
52 | issue tracking systems that are managed by, or on behalf of, the Licensor for
53 | the purpose of discussing and improving the Work, but excluding communication
54 | that is conspicuously marked or otherwise designated in writing by the copyright
55 | owner as "Not a Contribution."
56 |
57 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf
58 | of whom a Contribution has been received by Licensor and subsequently
59 | incorporated within the Work.
60 |
61 | 2. Grant of Copyright License.
62 |
63 | Subject to the terms and conditions of this License, each Contributor hereby
64 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
65 | irrevocable copyright license to reproduce, prepare Derivative Works of,
66 | publicly display, publicly perform, sublicense, and distribute the Work and such
67 | Derivative Works in Source or Object form.
68 |
69 | 3. Grant of Patent License.
70 |
71 | Subject to the terms and conditions of this License, each Contributor hereby
72 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
73 | irrevocable (except as stated in this section) patent license to make, have
74 | made, use, offer to sell, sell, import, and otherwise transfer the Work, where
75 | such license applies only to those patent claims licensable by such Contributor
76 | that are necessarily infringed by their Contribution(s) alone or by combination
77 | of their Contribution(s) with the Work to which such Contribution(s) was
78 | submitted. If You institute patent litigation against any entity (including a
79 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a
80 | Contribution incorporated within the Work constitutes direct or contributory
81 | patent infringement, then any patent licenses granted to You under this License
82 | for that Work shall terminate as of the date such litigation is filed.
83 |
84 | 4. Redistribution.
85 |
86 | You may reproduce and distribute copies of the Work or Derivative Works thereof
87 | in any medium, with or without modifications, and in Source or Object form,
88 | provided that You meet the following conditions:
89 |
90 | You must give any other recipients of the Work or Derivative Works a copy of
91 | this License; and
92 | You must cause any modified files to carry prominent notices stating that You
93 | changed the files; and
94 | You must retain, in the Source form of any Derivative Works that You distribute,
95 | all copyright, patent, trademark, and attribution notices from the Source form
96 | of the Work, excluding those notices that do not pertain to any part of the
97 | Derivative Works; and
98 | If the Work includes a "NOTICE" text file as part of its distribution, then any
99 | Derivative Works that You distribute must include a readable copy of the
100 | attribution notices contained within such NOTICE file, excluding those notices
101 | that do not pertain to any part of the Derivative Works, in at least one of the
102 | following places: within a NOTICE text file distributed as part of the
103 | Derivative Works; within the Source form or documentation, if provided along
104 | with the Derivative Works; or, within a display generated by the Derivative
105 | Works, if and wherever such third-party notices normally appear. The contents of
106 | the NOTICE file are for informational purposes only and do not modify the
107 | License. You may add Your own attribution notices within Derivative Works that
108 | You distribute, alongside or as an addendum to the NOTICE text from the Work,
109 | provided that such additional attribution notices cannot be construed as
110 | modifying the License.
111 | You may add Your own copyright statement to Your modifications and may provide
112 | additional or different license terms and conditions for use, reproduction, or
113 | distribution of Your modifications, or for any such Derivative Works as a whole,
114 | provided Your use, reproduction, and distribution of the Work otherwise complies
115 | with the conditions stated in this License.
116 |
117 | 5. Submission of Contributions.
118 |
119 | Unless You explicitly state otherwise, any Contribution intentionally submitted
120 | for inclusion in the Work by You to the Licensor shall be under the terms and
121 | conditions of this License, without any additional terms or conditions.
122 | Notwithstanding the above, nothing herein shall supersede or modify the terms of
123 | any separate license agreement you may have executed with Licensor regarding
124 | such Contributions.
125 |
126 | 6. Trademarks.
127 |
128 | This License does not grant permission to use the trade names, trademarks,
129 | service marks, or product names of the Licensor, except as required for
130 | reasonable and customary use in describing the origin of the Work and
131 | reproducing the content of the NOTICE file.
132 |
133 | 7. Disclaimer of Warranty.
134 |
135 | Unless required by applicable law or agreed to in writing, Licensor provides the
136 | Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
137 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
138 | including, without limitation, any warranties or conditions of TITLE,
139 | NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
140 | solely responsible for determining the appropriateness of using or
141 | redistributing the Work and assume any risks associated with Your exercise of
142 | permissions under this License.
143 |
144 | 8. Limitation of Liability.
145 |
146 | In no event and under no legal theory, whether in tort (including negligence),
147 | contract, or otherwise, unless required by applicable law (such as deliberate
148 | and grossly negligent acts) or agreed to in writing, shall any Contributor be
149 | liable to You for damages, including any direct, indirect, special, incidental,
150 | or consequential damages of any character arising as a result of this License or
151 | out of the use or inability to use the Work (including but not limited to
152 | damages for loss of goodwill, work stoppage, computer failure or malfunction, or
153 | any and all other commercial damages or losses), even if such Contributor has
154 | been advised of the possibility of such damages.
155 |
156 | 9. Accepting Warranty or Additional Liability.
157 |
158 | While redistributing the Work or Derivative Works thereof, You may choose to
159 | offer, and charge a fee for, acceptance of support, warranty, indemnity, or
160 | other liability obligations and/or rights consistent with this License. However,
161 | in accepting such obligations, You may act only on Your own behalf and on Your
162 | sole responsibility, not on behalf of any other Contributor, and only if You
163 | agree to indemnify, defend, and hold each Contributor harmless for any liability
164 | incurred by, or claims asserted against, such Contributor by reason of your
165 | accepting any such warranty or additional liability.
166 |
167 | END OF TERMS AND CONDITIONS
168 |
169 | APPENDIX: How to apply the Apache License to your work
170 |
171 | To apply the Apache License to your work, attach the following boilerplate
172 | notice, with the fields enclosed by brackets "{}" replaced with your own
173 | identifying information. (Don't include the brackets!) The text should be
174 | enclosed in the appropriate comment syntax for the file format. We also
175 | recommend that a file or class name and description of purpose be included on
176 | the same "printed page" as the copyright notice for easier identification within
177 | third-party archives.
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/NPOI.2.3.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/NPOI.2.3.0.nupkg
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/Read Me.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/Read Me.txt
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/Release Notes.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/Release Notes.txt
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net20/NPOI.OOXML.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net20/NPOI.OOXML.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net20/NPOI.OpenXml4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net20/NPOI.OpenXml4Net.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net20/NPOI.OpenXmlFormats.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net20/NPOI.OpenXmlFormats.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net20/NPOI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net20/NPOI.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net40/NPOI.OOXML.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net40/NPOI.OOXML.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net40/NPOI.OpenXml4Net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net40/NPOI.OpenXml4Net.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net40/NPOI.OpenXmlFormats.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net40/NPOI.OpenXmlFormats.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/lib/net40/NPOI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/lib/net40/NPOI.dll
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/logo/120_120.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/logo/120_120.jpg
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/logo/240_240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/logo/240_240.png
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/logo/32_32.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/logo/32_32.jpg
--------------------------------------------------------------------------------
/packages/NPOI.2.3.0/logo/60_60.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.2.3.0/logo/60_60.jpg
--------------------------------------------------------------------------------
/packages/NPOI.Extension.2.2.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.Extension.2.2.0/.signature.p7s
--------------------------------------------------------------------------------
/packages/NPOI.Extension.2.2.0/NPOI.Extension.2.2.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.Extension.2.2.0/NPOI.Extension.2.2.0.nupkg
--------------------------------------------------------------------------------
/packages/NPOI.Extension.2.2.0/lib/net45/NPOI.Extension.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/NPOI.Extension.2.2.0/lib/net45/NPOI.Extension.dll
--------------------------------------------------------------------------------
/packages/SharpZipLib.0.86.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/SharpZipLib.0.86.0/.signature.p7s
--------------------------------------------------------------------------------
/packages/SharpZipLib.0.86.0/SharpZipLib.0.86.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/SharpZipLib.0.86.0/SharpZipLib.0.86.0.nupkg
--------------------------------------------------------------------------------
/packages/SharpZipLib.0.86.0/lib/11/ICSharpCode.SharpZipLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/SharpZipLib.0.86.0/lib/11/ICSharpCode.SharpZipLib.dll
--------------------------------------------------------------------------------
/packages/SharpZipLib.0.86.0/lib/20/ICSharpCode.SharpZipLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/SharpZipLib.0.86.0/lib/20/ICSharpCode.SharpZipLib.dll
--------------------------------------------------------------------------------
/packages/SharpZipLib.0.86.0/lib/SL3/SharpZipLib.Silverlight3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/SharpZipLib.0.86.0/lib/SL3/SharpZipLib.Silverlight3.dll
--------------------------------------------------------------------------------
/packages/SharpZipLib.0.86.0/lib/SL4/SharpZipLib.Silverlight4.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gdoujkzz/EasyRemote/0d5285cc366d50094f2c919bcc3bd91e18d9415e/packages/SharpZipLib.0.86.0/lib/SL4/SharpZipLib.Silverlight4.dll
--------------------------------------------------------------------------------