1.1版本,新增应用设置,修复部分BUG

This commit is contained in:
wixy 2019-07-16 10:54:02 +08:00
parent 3c61d44af1
commit 86d37be2c0
10 changed files with 551 additions and 163 deletions

View File

@ -69,7 +69,7 @@
// labelVersion
//
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelVersion.Location = new System.Drawing.Point(6, 20);
this.labelVersion.Location = new System.Drawing.Point(6, 25);
this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 16);
this.labelVersion.Name = "labelVersion";
@ -81,7 +81,7 @@
// labelCopyright
//
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCopyright.Location = new System.Drawing.Point(6, 39);
this.labelCopyright.Location = new System.Drawing.Point(6, 50);
this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 16);
this.labelCopyright.Name = "labelCopyright";
@ -94,9 +94,9 @@
//
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.okButton.Location = new System.Drawing.Point(145, 65);
this.okButton.Location = new System.Drawing.Point(145, 78);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(75, 25);
this.okButton.Size = new System.Drawing.Size(75, 19);
this.okButton.TabIndex = 24;
this.okButton.Text = "确定(&O)";
this.okButton.Click += new System.EventHandler(this.okButton_Click);

View File

@ -28,71 +28,73 @@
/// </summary>
private void InitializeComponent()
{
this.TunnelConfigGroupBox = new System.Windows.Forms.GroupBox();
this.enableCBX = new System.Windows.Forms.CheckBox();
this.ipTB = new System.Windows.Forms.TextBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.delButton = new System.Windows.Forms.Button();
this.enableCBX = new System.Windows.Forms.CheckBox();
this.addButton = new System.Windows.Forms.Button();
this.tunnelListBox = new System.Windows.Forms.ListBox();
this.ipTB = new System.Windows.Forms.TextBox();
this.tunnelTypeLabelPort = new System.Windows.Forms.Label();
this.tunnelTypeCMB = new System.Windows.Forms.ComboBox();
this.tunnelTypeLabel = new System.Windows.Forms.Label();
this.portTB = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.tunnelNameTB = new System.Windows.Forms.TextBox();
this.subdomainLBL = new System.Windows.Forms.Label();
this.subdomainTB = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.tunnelTypeLabelPort = new System.Windows.Forms.Label();
this.subdomainLBL = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.tunnelTypeLabel = new System.Windows.Forms.Label();
this.tunnelTypeCMB = new System.Windows.Forms.ComboBox();
this.tunnelListBox = new System.Windows.Forms.ListBox();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.tpCheckBox = new System.Windows.Forms.CheckBox();
this.notShowCB = new System.Windows.Forms.CheckBox();
this.autoStartCheckBox = new System.Windows.Forms.CheckBox();
this.saveButton = new System.Windows.Forms.Button();
this.TunnelConfigGroupBox.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.SuspendLayout();
//
// TunnelConfigGroupBox
// tabControl1
//
this.TunnelConfigGroupBox.Controls.Add(this.enableCBX);
this.TunnelConfigGroupBox.Controls.Add(this.ipTB);
this.TunnelConfigGroupBox.Controls.Add(this.delButton);
this.TunnelConfigGroupBox.Controls.Add(this.addButton);
this.TunnelConfigGroupBox.Controls.Add(this.portTB);
this.TunnelConfigGroupBox.Controls.Add(this.tunnelNameTB);
this.TunnelConfigGroupBox.Controls.Add(this.subdomainTB);
this.TunnelConfigGroupBox.Controls.Add(this.label1);
this.TunnelConfigGroupBox.Controls.Add(this.label2);
this.TunnelConfigGroupBox.Controls.Add(this.label5);
this.TunnelConfigGroupBox.Controls.Add(this.tunnelTypeLabelPort);
this.TunnelConfigGroupBox.Controls.Add(this.subdomainLBL);
this.TunnelConfigGroupBox.Controls.Add(this.label3);
this.TunnelConfigGroupBox.Controls.Add(this.tunnelTypeLabel);
this.TunnelConfigGroupBox.Controls.Add(this.tunnelTypeCMB);
this.TunnelConfigGroupBox.Controls.Add(this.tunnelListBox);
this.TunnelConfigGroupBox.Location = new System.Drawing.Point(12, 12);
this.TunnelConfigGroupBox.Name = "TunnelConfigGroupBox";
this.TunnelConfigGroupBox.Size = new System.Drawing.Size(291, 201);
this.TunnelConfigGroupBox.TabIndex = 8;
this.TunnelConfigGroupBox.TabStop = false;
this.TunnelConfigGroupBox.Text = "通道配置";
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(8, 2);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(327, 188);
this.tabControl1.TabIndex = 9;
//
// enableCBX
// tabPage1
//
this.enableCBX.AutoSize = true;
this.enableCBX.Location = new System.Drawing.Point(193, 154);
this.enableCBX.Name = "enableCBX";
this.enableCBX.Size = new System.Drawing.Size(15, 14);
this.enableCBX.TabIndex = 10;
this.enableCBX.UseVisualStyleBackColor = true;
//
// ipTB
//
this.ipTB.Location = new System.Drawing.Point(193, 100);
this.ipTB.Name = "ipTB";
this.ipTB.Size = new System.Drawing.Size(92, 21);
this.ipTB.TabIndex = 9;
this.tabPage1.BackColor = System.Drawing.Color.White;
this.tabPage1.Controls.Add(this.delButton);
this.tabPage1.Controls.Add(this.enableCBX);
this.tabPage1.Controls.Add(this.addButton);
this.tabPage1.Controls.Add(this.tunnelListBox);
this.tabPage1.Controls.Add(this.ipTB);
this.tabPage1.Controls.Add(this.tunnelTypeLabelPort);
this.tabPage1.Controls.Add(this.tunnelTypeCMB);
this.tabPage1.Controls.Add(this.tunnelTypeLabel);
this.tabPage1.Controls.Add(this.portTB);
this.tabPage1.Controls.Add(this.label3);
this.tabPage1.Controls.Add(this.tunnelNameTB);
this.tabPage1.Controls.Add(this.subdomainLBL);
this.tabPage1.Controls.Add(this.subdomainTB);
this.tabPage1.Controls.Add(this.label5);
this.tabPage1.Controls.Add(this.label1);
this.tabPage1.Controls.Add(this.label2);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(319, 162);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "通道配置";
//
// delButton
//
this.delButton.Location = new System.Drawing.Point(76, 172);
this.delButton.Location = new System.Drawing.Point(76, 131);
this.delButton.Name = "delButton";
this.delButton.Size = new System.Drawing.Size(50, 23);
this.delButton.TabIndex = 1;
@ -100,9 +102,18 @@
this.delButton.UseVisualStyleBackColor = true;
this.delButton.Click += new System.EventHandler(this.delButton_Click);
//
// enableCBX
//
this.enableCBX.AutoSize = true;
this.enableCBX.Location = new System.Drawing.Point(195, 140);
this.enableCBX.Name = "enableCBX";
this.enableCBX.Size = new System.Drawing.Size(15, 14);
this.enableCBX.TabIndex = 10;
this.enableCBX.UseVisualStyleBackColor = true;
//
// addButton
//
this.addButton.Location = new System.Drawing.Point(6, 172);
this.addButton.Location = new System.Drawing.Point(6, 131);
this.addButton.Name = "addButton";
this.addButton.Size = new System.Drawing.Size(50, 23);
this.addButton.TabIndex = 1;
@ -110,31 +121,110 @@
this.addButton.UseVisualStyleBackColor = true;
this.addButton.Click += new System.EventHandler(this.addButton_Click);
//
// tunnelListBox
//
this.tunnelListBox.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tunnelListBox.FormattingEnabled = true;
this.tunnelListBox.ItemHeight = 14;
this.tunnelListBox.Location = new System.Drawing.Point(6, 6);
this.tunnelListBox.Name = "tunnelListBox";
this.tunnelListBox.Size = new System.Drawing.Size(120, 116);
this.tunnelListBox.TabIndex = 5;
this.tunnelListBox.SelectedIndexChanged += new System.EventHandler(this.tunnelListBox_SelectedValueChanged);
//
// ipTB
//
this.ipTB.Location = new System.Drawing.Point(195, 86);
this.ipTB.Name = "ipTB";
this.ipTB.Size = new System.Drawing.Size(92, 21);
this.ipTB.TabIndex = 9;
//
// tunnelTypeLabelPort
//
this.tunnelTypeLabelPort.AutoSize = true;
this.tunnelTypeLabelPort.Location = new System.Drawing.Point(136, 36);
this.tunnelTypeLabelPort.Name = "tunnelTypeLabelPort";
this.tunnelTypeLabelPort.Size = new System.Drawing.Size(53, 12);
this.tunnelTypeLabelPort.TabIndex = 8;
this.tunnelTypeLabelPort.Text = "远程端口";
this.tunnelTypeLabelPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.tunnelTypeLabelPort.Visible = false;
//
// tunnelTypeCMB
//
this.tunnelTypeCMB.FormattingEnabled = true;
this.tunnelTypeCMB.Items.AddRange(new object[] {
"TCP",
"HTTP"});
this.tunnelTypeCMB.Location = new System.Drawing.Point(195, 60);
this.tunnelTypeCMB.Name = "tunnelTypeCMB";
this.tunnelTypeCMB.Size = new System.Drawing.Size(92, 20);
this.tunnelTypeCMB.TabIndex = 6;
this.tunnelTypeCMB.SelectedIndexChanged += new System.EventHandler(this.tunnelTypeCMB_SelectedIndexChanged);
//
// tunnelTypeLabel
//
this.tunnelTypeLabel.AutoSize = true;
this.tunnelTypeLabel.Location = new System.Drawing.Point(136, 63);
this.tunnelTypeLabel.Name = "tunnelTypeLabel";
this.tunnelTypeLabel.Size = new System.Drawing.Size(53, 12);
this.tunnelTypeLabel.TabIndex = 7;
this.tunnelTypeLabel.Text = "通道类型";
//
// portTB
//
this.portTB.Location = new System.Drawing.Point(193, 127);
this.portTB.Location = new System.Drawing.Point(195, 113);
this.portTB.Name = "portTB";
this.portTB.Size = new System.Drawing.Size(92, 21);
this.portTB.TabIndex = 9;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(148, 89);
this.label3.Name = "label3";
this.label3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label3.Size = new System.Drawing.Size(41, 12);
this.label3.TabIndex = 7;
this.label3.Text = "IP地址";
//
// tunnelNameTB
//
this.tunnelNameTB.Location = new System.Drawing.Point(193, 20);
this.tunnelNameTB.Location = new System.Drawing.Point(195, 6);
this.tunnelNameTB.Name = "tunnelNameTB";
this.tunnelNameTB.Size = new System.Drawing.Size(92, 21);
this.tunnelNameTB.TabIndex = 9;
//
// subdomainLBL
//
this.subdomainLBL.AutoSize = true;
this.subdomainLBL.Location = new System.Drawing.Point(148, 36);
this.subdomainLBL.Name = "subdomainLBL";
this.subdomainLBL.Size = new System.Drawing.Size(41, 12);
this.subdomainLBL.TabIndex = 8;
this.subdomainLBL.Text = "子域名";
this.subdomainLBL.Visible = false;
//
// subdomainTB
//
this.subdomainTB.Location = new System.Drawing.Point(193, 47);
this.subdomainTB.Location = new System.Drawing.Point(195, 33);
this.subdomainTB.Name = "subdomainTB";
this.subdomainTB.Size = new System.Drawing.Size(92, 21);
this.subdomainTB.TabIndex = 9;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(160, 10);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(29, 12);
this.label5.TabIndex = 8;
this.label5.Text = "名称";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(158, 154);
this.label1.Location = new System.Drawing.Point(160, 140);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 8;
@ -143,87 +233,58 @@
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(158, 130);
this.label2.Location = new System.Drawing.Point(160, 116);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 8;
this.label2.Text = "端口";
//
// label5
// tabPage2
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(158, 24);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(29, 12);
this.label5.TabIndex = 8;
this.label5.Text = "名称";
this.tabPage2.BackColor = System.Drawing.Color.White;
this.tabPage2.Controls.Add(this.tpCheckBox);
this.tabPage2.Controls.Add(this.notShowCB);
this.tabPage2.Controls.Add(this.autoStartCheckBox);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(319, 162);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "应用设置";
//
// tunnelTypeLabelPort
// tpCheckBox
//
this.tunnelTypeLabelPort.AutoSize = true;
this.tunnelTypeLabelPort.Location = new System.Drawing.Point(134, 50);
this.tunnelTypeLabelPort.Name = "tunnelTypeLabelPort";
this.tunnelTypeLabelPort.Size = new System.Drawing.Size(53, 12);
this.tunnelTypeLabelPort.TabIndex = 8;
this.tunnelTypeLabelPort.Text = "远程端口";
this.tunnelTypeLabelPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.tunnelTypeLabelPort.Visible = false;
this.tpCheckBox.AutoSize = true;
this.tpCheckBox.Location = new System.Drawing.Point(17, 62);
this.tpCheckBox.Name = "tpCheckBox";
this.tpCheckBox.Size = new System.Drawing.Size(108, 16);
this.tpCheckBox.TabIndex = 12;
this.tpCheckBox.Text = "退出隐藏到托盘";
this.tpCheckBox.UseVisualStyleBackColor = true;
//
// subdomainLBL
// notShowCB
//
this.subdomainLBL.AutoSize = true;
this.subdomainLBL.Location = new System.Drawing.Point(146, 50);
this.subdomainLBL.Name = "subdomainLBL";
this.subdomainLBL.Size = new System.Drawing.Size(41, 12);
this.subdomainLBL.TabIndex = 8;
this.subdomainLBL.Text = "子域名";
this.subdomainLBL.Visible = false;
this.notShowCB.AutoSize = true;
this.notShowCB.Location = new System.Drawing.Point(17, 40);
this.notShowCB.Name = "notShowCB";
this.notShowCB.Size = new System.Drawing.Size(108, 16);
this.notShowCB.TabIndex = 12;
this.notShowCB.Text = "不显示运行窗口";
this.notShowCB.UseVisualStyleBackColor = true;
//
// label3
// autoStartCheckBox
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(146, 103);
this.label3.Name = "label3";
this.label3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label3.Size = new System.Drawing.Size(41, 12);
this.label3.TabIndex = 7;
this.label3.Text = "IP地址";
//
// tunnelTypeLabel
//
this.tunnelTypeLabel.AutoSize = true;
this.tunnelTypeLabel.Location = new System.Drawing.Point(134, 77);
this.tunnelTypeLabel.Name = "tunnelTypeLabel";
this.tunnelTypeLabel.Size = new System.Drawing.Size(53, 12);
this.tunnelTypeLabel.TabIndex = 7;
this.tunnelTypeLabel.Text = "通道类型";
//
// tunnelTypeCMB
//
this.tunnelTypeCMB.FormattingEnabled = true;
this.tunnelTypeCMB.Items.AddRange(new object[] {
"TCP",
"HTTP"});
this.tunnelTypeCMB.Location = new System.Drawing.Point(193, 74);
this.tunnelTypeCMB.Name = "tunnelTypeCMB";
this.tunnelTypeCMB.Size = new System.Drawing.Size(92, 20);
this.tunnelTypeCMB.TabIndex = 6;
this.tunnelTypeCMB.SelectedIndexChanged += new System.EventHandler(this.tunnelTypeCMB_SelectedIndexChanged);
//
// tunnelListBox
//
this.tunnelListBox.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tunnelListBox.FormattingEnabled = true;
this.tunnelListBox.ItemHeight = 14;
this.tunnelListBox.Location = new System.Drawing.Point(6, 20);
this.tunnelListBox.Name = "tunnelListBox";
this.tunnelListBox.Size = new System.Drawing.Size(120, 144);
this.tunnelListBox.TabIndex = 5;
this.tunnelListBox.SelectedIndexChanged += new System.EventHandler(this.tunnelListBox_SelectedValueChanged);
this.autoStartCheckBox.AutoSize = true;
this.autoStartCheckBox.Location = new System.Drawing.Point(17, 18);
this.autoStartCheckBox.Name = "autoStartCheckBox";
this.autoStartCheckBox.Size = new System.Drawing.Size(72, 16);
this.autoStartCheckBox.TabIndex = 12;
this.autoStartCheckBox.Text = "自动启动";
this.autoStartCheckBox.UseVisualStyleBackColor = true;
//
// saveButton
//
this.saveButton.Location = new System.Drawing.Point(228, 219);
this.saveButton.Location = new System.Drawing.Point(256, 196);
this.saveButton.Name = "saveButton";
this.saveButton.Size = new System.Drawing.Size(75, 23);
this.saveButton.TabIndex = 1;
@ -235,8 +296,8 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(309, 247);
this.Controls.Add(this.TunnelConfigGroupBox);
this.ClientSize = new System.Drawing.Size(340, 225);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.saveButton);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
@ -246,15 +307,17 @@
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "设置";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.SettingForm_FormClosed);
this.TunnelConfigGroupBox.ResumeLayout(false);
this.TunnelConfigGroupBox.PerformLayout();
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox TunnelConfigGroupBox;
private System.Windows.Forms.CheckBox enableCBX;
private System.Windows.Forms.TextBox ipTB;
private System.Windows.Forms.Button delButton;
@ -272,5 +335,11 @@
private System.Windows.Forms.ListBox tunnelListBox;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label tunnelTypeLabelPort;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.CheckBox autoStartCheckBox;
private System.Windows.Forms.CheckBox notShowCB;
private System.Windows.Forms.CheckBox tpCheckBox;
}
}

View File

@ -104,6 +104,9 @@ namespace Ultron.Ngrok
ServerAddr = "ngrok.aaqbee.com:8083",
TrustHostRootCerts = false,
Version = AssemblyVersion,
AutoStart = false,
UseNotifyMenu = true,
HideWindow = false,
Tunnels = new Dictionary<string, Tunnel>()
};
Tunnel httpTunnel = new Tunnel
@ -142,6 +145,9 @@ namespace Ultron.Ngrok
if(ServerConfig.Version != AssemblyVersion)
{
ServerConfig.Version = AssemblyVersion;
ServerConfig.AutoStart = false;
ServerConfig.UseNotifyMenu = true;
ServerConfig.HideWindow = false;
SaveConfig();
}
}
@ -169,6 +175,10 @@ namespace Ultron.Ngrok
tunnelName += " " + item.Key;
}
autoStartCheckBox.Checked = ServerConfig.AutoStart;
notShowCB.Checked = ServerConfig.HideWindow;
tpCheckBox.Checked = ServerConfig.UseNotifyMenu;
ExecuteCommand = ExeFile + ".exe -config ngrok.cfg start" + tunnelName;
}
@ -317,8 +327,16 @@ namespace Ultron.Ngrok
tunl.TunnelName = tunnelNameTB.Text;
tunl.Enable = enableCBX.Checked;
SaveConfig();
ServerConfig.AutoStart = autoStartCheckBox.Checked;
ServerConfig.HideWindow = notShowCB.Checked;
ServerConfig.UseNotifyMenu = tpCheckBox.Checked;
SaveConfig();
LoadConfig();
}
else
{
SaveConfig();
LoadConfig();
}
WriteLogToForm("保存成功");
@ -340,6 +358,5 @@ namespace Ultron.Ngrok
{
ReLoadConfig();
}
}
}

View File

@ -117,7 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

@ -28,15 +28,21 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
this.cmdLogTextArea = new System.Windows.Forms.TextBox();
this.startBtn = new System.Windows.Forms.Button();
this.endBtn = new System.Windows.Forms.Button();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.topMenuStrip = new System.Windows.Forms.MenuStrip();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
this.notifyMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
this.退ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.topMenuStrip.SuspendLayout();
this.notifyMenuStrip.SuspendLayout();
this.SuspendLayout();
//
// cmdLogTextArea
@ -71,17 +77,18 @@
this.endBtn.UseVisualStyleBackColor = true;
this.endBtn.Click += new System.EventHandler(this.endBtn_Click);
//
// menuStrip1
// topMenuStrip
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.topMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.ToolStripMenuItem,
this.ToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(362, 25);
this.menuStrip1.TabIndex = 4;
this.menuStrip1.Text = "menuStrip1";
this.topMenuStrip.Location = new System.Drawing.Point(0, 0);
this.topMenuStrip.Name = "topMenuStrip";
this.topMenuStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
this.topMenuStrip.Size = new System.Drawing.Size(362, 25);
this.topMenuStrip.TabIndex = 4;
this.topMenuStrip.Text = "menuStrip1";
//
// 设置ToolStripMenuItem
//
@ -104,6 +111,36 @@
this.ToolStripMenuItem.Text = "关于";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// notifyIcon
//
this.notifyIcon.ContextMenuStrip = this.notifyMenuStrip;
this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon")));
this.notifyIcon.Text = "uNgrok";
this.notifyIcon.Visible = true;
this.notifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.NotifyIcon_MouseDoubleClick);
//
// notifyMenuStrip
//
this.notifyMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.退ToolStripMenuItem});
this.notifyMenuStrip.Name = "notifyMenuStrip";
this.notifyMenuStrip.Size = new System.Drawing.Size(181, 70);
//
// 退出ToolStripMenuItem
//
this.退ToolStripMenuItem.Name = "退出ToolStripMenuItem";
this.退ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.退ToolStripMenuItem.Text = "退出";
this.退ToolStripMenuItem.Click += new System.EventHandler(this.退ToolStripMenuItem_Click);
//
// 显示ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "显示ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.ToolStripMenuItem.Text = "显示";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@ -112,17 +149,20 @@
this.Controls.Add(this.endBtn);
this.Controls.Add(this.startBtn);
this.Controls.Add(this.cmdLogTextArea);
this.Controls.Add(this.menuStrip1);
this.Controls.Add(this.topMenuStrip);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.MainMenuStrip = this.topMenuStrip;
this.MaximizeBox = false;
this.Name = "FormMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "uNgrok";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing);
this.Load += new System.EventHandler(this.FormMain_Load);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.SizeChanged += new System.EventHandler(this.FormMain_SizeChanged);
this.topMenuStrip.ResumeLayout(false);
this.topMenuStrip.PerformLayout();
this.notifyMenuStrip.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@ -133,10 +173,14 @@
public System.Windows.Forms.TextBox cmdLogTextArea;
private System.Windows.Forms.Button startBtn;
private System.Windows.Forms.Button endBtn;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.MenuStrip topMenuStrip;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.NotifyIcon notifyIcon;
private System.Windows.Forms.ContextMenuStrip notifyMenuStrip;
private System.Windows.Forms.ToolStripMenuItem 退ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
}
}

View File

@ -5,15 +5,17 @@ using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Threading;
using Ultron.Ngrok.Utils;
using System.Net;
using System.IO;
using Ultron.Ngrok.Utils;
using Ultron.Ngrok.Properties;
namespace Ultron.Ngrok
{
public partial class FormMain : Form
{
public delegate void CmdInitAlready();
#region
/// <summary>
@ -82,22 +84,35 @@ namespace Ultron.Ngrok
//进程检测
CheckProcessAndKill(setting.ExeFile);
CmdInitAlready callback = new CmdInitAlready(CmdCallBack);
//初始化CMD
new Thread(new ThreadStart(InitCmd)).Start();
Thread cmdThread = new Thread(InitCmd);
cmdThread.IsBackground = true;
cmdThread.Start(callback);
//检查更新
new Thread(new ThreadStart(CheckUpdateAsync)).Start();
Thread updateThread = new Thread(new ThreadStart(CheckUpdateAsync));
updateThread.IsBackground = true;
updateThread.Start();
}
public void CmdCallBack()
{
if(setting.ServerConfig.AutoStart)
{
startBtn_Click(null, null);
}
}
#endregion
#region
private void startBtn_Click(object sender, EventArgs e)
{
//网络检测
NetworkUtils.CheckServeStatus(this);
cmd.SendMsg(setting.ExecuteCommand);
cmd.SendMsg(setting.ExecuteCommand,setting.ServerConfig.HideWindow);
startBtn.Enabled = false;
endBtn.Enabled = true;
@ -119,7 +134,7 @@ namespace Ultron.Ngrok
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
Process.Start("explorer.exe", "http://git.iwangyu.cn/wixy/Ultron.Ngrok/wiki");
Process.Start("explorer.exe", "https://git.wixy.cn/wixy/Ultron.Ngrok/wiki/帮助");
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
@ -128,6 +143,69 @@ namespace Ultron.Ngrok
about.ShowDialog();
}
private void NotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
//还原窗体显示
WindowState = FormWindowState.Normal;
//激活窗体并给予它焦点
this.Activate();
//任务栏区显示图标
this.ShowInTaskbar = true;
//托盘区图标隐藏
notifyIcon.Visible = false;
}
}
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (setting.ServerConfig.UseNotifyMenu)
{
WindowState = FormWindowState.Minimized;
e.Cancel = true;
}
else
{
if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
// 关闭所有的线程
this.Dispose();
this.Close();
}
else
{
e.Cancel = true;
}
}
}
private void FormMain_SizeChanged(object sender, EventArgs e)
{
//判断是否选择的是最小化按钮
if (WindowState == FormWindowState.Minimized)
{
//隐藏任务栏区图标
this.ShowInTaskbar = false;
//图标显示在托盘区
notifyIcon.Visible = true;
}
}
private void 退ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
this.Dispose();
this.Close();
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Normal;
}
#endregion
#region
@ -170,12 +248,14 @@ namespace Ultron.Ngrok
setting.WriteLogToForm += WriteLog;
}
public void InitCmd()
public void InitCmd(object obj)
{
//创建CMD
cmd = new CmdUtils();
cmd.ProcessMessageEvent += DealMessage;
cmd.ProcessKilled += cmd_Exited;
CmdInitAlready callback = obj as CmdInitAlready;
callback();
}
/// <summary>
@ -284,5 +364,6 @@ namespace Ultron.Ngrok
}
#endregion
}
}

View File

@ -117,10 +117,182 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="topMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="notifyIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>151, 17</value>
</metadata>
<metadata name="notifyMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>262, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="notifyIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAMMOAADDDgAAAAAAAAAA
AAA/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//QEBA/0JCQv9BQUH/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/9AQED/Pj4+/z8/P/8/Pz//PT09/zAwMP82Njb/QEBA/z8/P/8+Pj7/Pz8//0BA
QP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/9AQED/Pz8//0BAQP81NTX/NTU1/zs7O/8+Pj7/Q0ND/21tbf9XV1f/Ozs7/z09
Pf83Nzf/MzMz/zo6Ov9AQED/QEBA/0BAQP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z4+Pv85OTn/QUFB/zk5Of9eXl7/paWl/1dXV/8yMjL/WVlZ/8LC
wv+Dg4P/NjY2/zg4OP+BgYH/nZ2d/0dHR/8+Pj7/PT09/zo6Ov9AQED/Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//zg4OP9ERET/Ozs7/zg4OP9wcHD/vb29/3Jy
cv8jIyP/V1dX/7Gxsf+IiIj/LS0t/zw8PP+srKz/qqqq/0xMTP86Ojr/Pj4+/0FBQf85OTn/QEBA/z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0FBQf9DQ0P/Nzc3/3d3d/+6urr/WFhY/x4e
Hv9qamr/uLi4/6Wlpf+ZmZn/qqqq/6ysrP+vr6//o6Oj/5mZmf+xsbH/nJyc/zAwMP8qKir/kJCQ/7i4
uP9WVlb/Ojo6/0NDQ/9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//zMzM/84ODj/Ozs7/2lp
af+5ubn/oKCg/4KCgv+srKz/sbGx/7CwsP+0tLT/sLCw/6+vr/+vr6//s7Oz/7S0tP+vr6//s7Oz/5mZ
mf+Ghob/ubm5/6enp/9JSUn/PDw8/zAwMP86Ojr/QEBA/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9BQUH/ODg4/2Bg
YP9RUVH/KSkp/zY2Nv+lpaX/ubm5/7u7u/+1tbX/tLS0/7i4uP+4uLj/uLi4/7e3t/+3t7f/uLi4/7e3
t/+2trb/s7Oz/7m5uf+5ubn/vLy8/3d3d/8jIyP/NDQ0/3R0dP9ISEj/Ozs7/0BAQP8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0BA
QP89PT3/S0tL/7+/v/+5ubn/Z2dn/5iYmP+9vb3/tra2/7e3t/+8vLz/tbW1/6Kiov+Xl5f/jo6O/4iI
iP+Kior/k5OT/5ycnP+vr6//u7u7/7m5uf+1tbX/ubm5/7a2tv9vb2//jIyM/9TU1P+Wlpb/Nzc3/0JC
Qv8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//QEBA/z8/P/8/Pz//Pz8//3l5ef++vr7/x8fH/8LCwv+6urr/wMDA/7e3t/+YmJj/gYGB/3h4
eP95eXn/eHh4/3h4eP94eHj/eXl5/3h4eP98fHz/jY2N/6ysrP/AwMD/vLy8/729vf/IyMj/xsbG/6+v
r/9XV1f/PT09/z4+Pv9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//PT09/zY2Nv82Njb/KCgo/z09Pf+4uLj/v7+//729vf/Dw8P/rKys/4WF
hf99fX3/goKC/3x8fP9sbGz/ZGRk/2BgYP9iYmL/ZmZm/3Nzc/+BgYH/gICA/39/f/+ampr/vr6+/8DA
wP+6urr/yMjI/4WFhf8hISH/MzMz/zk5Of83Nzf/QUFB/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9BQUH/NjY2/4aGhv+0tLT/ZGRk/56env/MzMz/wsLC/8jI
yP+rq6v/h4eH/4uLi/+EhIT/ZGRk/0tLS/8/Pz//Pz8//z09Pf8+Pj7/Pj4+/0JCQv9TU1P/c3Nz/4qK
iv+Ghob/lZWV/8LCwv/FxcX/xcXF/8TExP9tbW3/ioqK/729vf9UVFT/Ozs7/0BAQP8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9AQED/Ozs7/5SUlP/Y2Nj/09PT/83N
zf/Gxsb/y8vL/7W1tf+Pj4//l5eX/4GBgf9QUFD/Pj4+/z09Pf8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/88PDz/QUFB/2RkZP+SkpL/kJCQ/6Kiov/Kysr/ycnJ/8rKyv/T09P/19fX/9DQ0P9oaGj/ODg4/0FB
Qf8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9AQED/QUFB/zo6
Ov91dXX/y8vL/8jIyP/MzMz/wsLC/5ycnP+fn5//h4eH/0tLS/88PDz/QUFB/0BAQP8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/9AQED/Pj4+/z4+Pv9lZWX/mpqa/5qamv+ysrL/zc3N/8jIyP/MzMz/sbGx/1FR
Uf87Ozv/QkJC/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0BA
QP85OTn/Ly8v/yAgIP9nZ2f/1tbW/8zMzP/Pz8//srKy/6Wlpf+wsLD/YmJi/ykpKf9BQUH/QUFB/z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9AQED/Q0ND/zU1Nf81NTX/mZmZ/6urq/+np6f/x8fH/87O
zv/W1tb/rKys/ygoKP8rKyv/MTEx/z4+Pv8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//QEBA/zk5Of9aWlr/qqqq/4yMjP/ExMT/1tbW/9LS0v/Kysr/s7Oz/7W1tf+7u7v/qamp/2Fh
Yf8yMjL/NTU1/0JCQv9BQUH/Pz8//z8/P/8/Pz//Pz8//0NDQ/88PDz/LS0t/0pKSv+SkpL/ubm5/7e3
t/+xsbH/vr6+/9PT0//Q0ND/2dnZ/56env+ampr/lZWV/zo6Ov9AQED/Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//QUFB/zc3N/9xcXH/4eHh/+bm5v/X19f/09PT/9fX1//IyMj/v7+//7e3
t/+goKD/v7+//83Nzf+enp7/UFBQ/ywsLP86Ojr/QkJC/z8/P/9CQkL/Pz8//y4uLv89PT3/goKC/8TE
xP/MzMz/pqam/6ioqP/BwcH/wMDA/9PT0//W1tb/09PT/+Dg4P/s7Oz/xcXF/0dHR/89PT3/QEBA/z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0BAQP9BQUH/Tk5O/5SUlP/d3d3/1tbW/9nZ
2f/Ly8v/0dHR/5CQkP89PT3/bGxs/6qqqv/V1dX/0NDQ/4+Pj/9AQED/Li4u/zo6Ov8yMjL/MDAw/3Bw
cP+/v7//29vb/729vf+CgoL/SEhI/1tbW//Hx8f/ysrK/9XV1f/Y2Nj/29vb/8TExP9nZ2f/S0tL/z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/80NDT/GRkZ/3Nz
c//o6Oj/2NjY/9nZ2f/S0tL/2dnZ/29vb/83Nzf/Ozs7/0hISP+AgID/xMTE/+bm5v/Nzc3/fX19/z09
Pf9fX1//tbW1/+Xl5f/V1dX/mZmZ/1ZWVv86Ojr/Ozs7/0VFRf++vr7/2NjY/9bW1v/a2tr/4uLi/7y8
vP8hISH/KSkp/zg4OP9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//zw8
PP9nZ2f/b29v/7CwsP/k5OT/3Nzc/9zc3P/d3d3/29vb/1lZWf86Ojr/QkJC/z09Pf85OTn/VFRU/5aW
lv/b29v/7Ozs/5ycnP/Nzc3/7e3t/7Kysv9paWn/PT09/zs7O/9BQUH/QUFB/zk5Of+ysrL/5eXl/9zc
3P/d3d3/39/f/9bW1v99fX3/c3Nz/1FRUf87Ozv/QEBA/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pj4+/0JCQv/c3Nz//f39/+np6f/e3t7/4ODg/+Hh4f/m5ub/3Nzc/1BQUP87Ozv/QEBA/0BA
QP9BQUH/Ozs7/zw8PP9sbGz/urq6/6Ghof+7u7v/i4uL/0VFRf84ODj/QEBA/0BAQP8/Pz//QUFB/zY2
Nv+urq7/7u7u/+Hh4f/f39//39/f/+Hh4f/z8/P//////5CQkP8yMjL/QkJC/z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0FBQf+CgoL/mZmZ/8TExP/n5+f/4ODg/+Pj4//s7Oz/5+fn/1VV
Vf85OTn/QEBA/z8/P/8/Pz//QEBA/0FBQf8uLi7/dHR0//v7+/+ysrL/MDAw/z4+Pv9BQUH/Pz8//z8/
P/8/Pz//QUFB/zU1Nf+3t7f/9fX1/+bm5v/h4eH/4+Pj/93d3f+jo6P/mZmZ/19fX/86Ojr/QEBA/z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/85OTn/Hx8f/3t7e//x8fH/4ODg/+Xl
5f/s7Oz/9PT0/29vb/81NTX/QUFB/z8/P/8/Pz//Pz8//0FBQf83Nzf/a2tr//////+vr6//NjY2/0JC
Qv8/Pz//Pz8//z8/P/8/Pz//Pj4+/0FBQf/S0tL/9fX1/+fn5//h4eH/6+vr/8PDw/8mJib/MjIy/zs7
O/9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0BAQP86Ojr/OTk5/5yc
nP/t7e3/5OTk/+Pj4//p6en//f39/5mZmf8vLy//Q0ND/z8/P/8/Pz//Pz8//0FBQf81NTX/bGxs////
//+vr6//NDQ0/0FBQf8/Pz//Pz8//z8/P/9BQUH/Nzc3/1hYWP/v7+//7+/v/+Xl5f/j4+P/6enp/9DQ
0P9bW1v/Nzc3/z4+Pv8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//QUFB/zY2
Nv92dnb/7Ozs//b29v/p6en/5ubm/+Xl5f/o6Oj/9fX1/9XV1f8/Pz//Pj4+/0BAQP8/Pz//Pz8//0FB
Qf81NTX/aWlp//////+tra3/NDQ0/0FBQf8/Pz//Pz8//z8/P/9DQ0P/MDAw/5eXl//6+vr/6urq/+Xl
5f/n5+f/5eXl//Ly8v/6+vr/xMTE/0RERP8+Pj7/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//QUFB/zc3N/9oaGj/0NDQ/66urv/b29v/7Ozs/+bm5v/h4eH/6Ojo//f39/+EhIT/Li4u/0RE
RP8/Pz//Pz8//0FBQf82Njb/ZmZm//z8/P+qqqr/NDQ0/0FBQf8/Pz//Pz8//0FBQf85OTn/RkZG/+Hh
4f/v7+//5OTk/+Xl5f/o6Oj/7e3t/6qqqv++vr7/sLCw/z09Pf8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/89PT3/PT09/ywsLP9+fn7/8/Pz/+jo6P/l5eX/3Nzc/+fn
5//c3Nz/S0tL/zQ0NP9ERET/Pz8//0FBQf82Njb/ZGRk//T09P+lpaX/NDQ0/0FBQf8/Pz//QUFB/z8/
P/8sLCz/qKio/+7u7v/f39//39/f/+np6f/w8PD/v7+//zAwMP86Ojr/OTk5/z4+Pv8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9AQED/QEBA/ykpKf96enr/7Ozs/+fn
5//r6+v/29vb/9fX1//k5OT/xMTE/0FBQf8wMDD/QkJC/0NDQ/83Nzf/YmJi/+rq6v+fn5//NjY2/0ND
Q/9DQ0P/Ojo6/ysrK/+Tk5P/5+fn/9ra2v/W1tb/5+fn/+fn5//v7+//vLy8/zs7O/82Njb/QkJC/z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9AQED/Ozs7/5mZ
mf/4+Pj/9fX1/+3t7f/o6Oj/6enp/9LS0v/Nzc3/3Nzc/8DAwP9XV1f/LCws/zU1Nf80NDT/Wlpa/+Li
4v+VlZX/MTEx/zo6Ov8sLCz/PT09/5ycnP/f39//09PT/83Nzf/h4eH/6urq/+rq6v/u7u7//Pz8/9ra
2v9aWlr/Ozs7/0BAQP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/9BQUH/NjY2/7Gxsf/f39//gYGB/8jIyP/y8vL/6Ojo/+fn5//MzMz/wsLC/9HR0f/Pz8//kpKS/1lZ
Wf8sLCz/aWlp/9jY2P+kpKT/MzMz/0tLS/96enr/vr6+/9XV1f/Hx8f/w8PD/93d3f/r6+v/6enp/+jo
6P9/f3//oaGh/+Dg4P9gYGD/ODg4/0BAQP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/9AQED/PDw8/0hISP9MTEz/Kysr/05OTv/i4uL/5+fn/+np6f/o6Oj/ycnJ/7q6
uv+/v7//zMzM/8nJyf+tra3/vLy8/8PDw//ExMT/sbGx/7+/v//Ozs7/w8PD/7q6uv/BwcH/3d3d/+zs
7P/k5OT/9PT0/5GRkf8kJCT/Ojo6/0tLS/87Ozv/QEBA/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//QEBA/z09Pf8/Pz//Nzc3/3p6ev/s7Oz/9PT0/+zs
7P/o6Oj/7Ozs/9XV1f+8vLz/s7Oz/7S0tP+9vb3/vLy8/7u7u/+6urr/vLy8/7e3t/+ysrL/tra2/8rK
yv/l5eX/6urq/+np6f/w8PD/9PT0/8TExP9GRkb/Pj4+/z09Pf9AQED/Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0FBQf87Ozv/TU1N/+3t
7f/r6+v/jY2N/8vLy//s7Oz/5OTk/+jo6P/m5ub/19fX/8LCwv/AwMD/tLS0/7Kysv+xsbH/vLy8/8LC
wv/Nzc3/4uLi/+np6f/k5OT/5eXl/+Xl5f+NjY3/q6ur//////+dnZ3/MzMz/0JCQv8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Ozs7/46Ojv92dnb/Kioq/0dHR//T09P/6+vr/+vr6//m5ub/6Ojo/+jo6P/j4+P/4+Pj/9/f
3//g4OD/5OTk/+fn5//o6Oj/5ubm/+np6f/r6+v/7e3t/4qKiv8nJyf/QUFB/5GRkf9ZWVn/Ozs7/0BA
QP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//zY2Nv86Ojr/OTk5/25ubv/q6ur/y8vL/7Ozs//h4eH/4ODg/+Pj
4//m5ub/4+Pj/+Li4v/i4uL/5ubm/+bm5v/g4OD/4+Pj/8jIyP+jo6P/7Ozs/7y8vP8+Pj7/Pz8//zU1
Nf87Ozv/QEBA/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//0FBQf9DQ0P/NDQ0/5SUlP/39/f/a2tr/ygo
KP+Dg4P/6urq/9DQ0P/FxcX/2tra/97e3v/e3t7/zs7O/76+vv/k5OT/vb29/zw8PP8xMTH/r6+v/+Hh
4f9SUlL/Ozs7/0JCQv9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pj4+/0VF
Rf9vb2//QkJC/zIyMv+AgID/+Pj4/4yMjP8uLi7/bW1t/+fn5/+qqqr/Ojo6/0hISP/Z2dn/z8/P/0JC
Qv87Ozv/UFBQ/11dXf86Ojr/QEBA/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z4+Pv82Njb/QUFB/zc3N/91dXX/1tbW/2JiYv8vLy//YGBg//X19f+fn5//MzMz/zo6
Ov+ampr/v7+//0pKSv89PT3/PT09/zk5Of9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9BQUH/Pz8//z8/P/86Ojr/RUVF/z8/P/89PT3/SkpK/4eH
h/9oaGj/Ozs7/z8/P/9AQED/Pj4+/z09Pf8/Pz//QEBA/0BAQP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9AQED/PT09/z8/
P/8/Pz//PT09/zMzM/85OTn/QEBA/z8/P/8/Pz//Pz8//0BAQP8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//QEBA/z8/P/8/Pz//Pz8//0JCQv9AQED/Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/
P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA=
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAMMOAADDDgAAAAAAAAAA

View File

@ -24,6 +24,15 @@ namespace Ultron.Ngrok.Model
[YamlMember(Alias = "version")]
public string Version { get; set; }
[YamlMember(Alias = "auto_start")]
public bool AutoStart { get; set; }
[YamlMember(Alias = "hide_window")]
public bool HideWindow { get; set; }
[YamlMember(Alias = "use_notify_menu")]
public bool UseNotifyMenu { get; set; }
[YamlMember(Alias = "auth_token")]
public string AuthToken { get; set; }

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]

View File

@ -22,10 +22,9 @@ namespace Ultron.Ngrok.Utils
public CmdUtils()
{
Control.CheckForIllegalCrossThreadCalls = false;
}
public void Init()
public void Init(bool hideWindow = false)
{
cmd = new Process();//创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo();
@ -34,7 +33,7 @@ namespace Ultron.Ngrok.Utils
startInfo.UseShellExecute = false;//不使用系统外壳程序启动
startInfo.RedirectStandardInput = true;//不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = false;//不创建窗口
startInfo.CreateNoWindow = hideWindow;//不创建窗口
cmd.StartInfo = startInfo;
@ -61,7 +60,7 @@ namespace Ultron.Ngrok.Utils
}
}
public void SendMsg(string cmdStr)
public void SendMsg(string cmdStr,bool hideWindow = false)
{
ProcessMessageEvent(0, "开始运行...");
if (!IsInited || cmd.HasExited)
@ -73,7 +72,7 @@ namespace Ultron.Ngrok.Utils
startInfo.UseShellExecute = false;//不使用系统外壳程序启动
startInfo.RedirectStandardInput = true;//不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = false;//不创建窗口
startInfo.CreateNoWindow = hideWindow;//不创建窗口
cmd.StartInfo = startInfo;