├── .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 | ![image](https://github.com/gdoujkzz/Resource/blob/master/image/easy-remote.gif) 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 --------------------------------------------------------------------------------