Code:
using System;
using System****;
using System.Diagnostics;
using System.Windows.Forms;
using System.Drawing;
using Microsoft.Win32;
using System.Text;
using System.Net;
using System****.Compression;
using IWshRuntimeLibrary;
using MetroFramework;
using System.Data;
using System.Runtime.InteropServices;
using System.Reflection;
namespace Steam_Account_Manager
{
public partial class form_main : MetroFramework.Forms.MetroForm
{
// Main Form
public form_main()
{
this.ShowInTaskbar = true;
InitializeComponent();
ListAccounts.Items.Clear();
read_settings();
metroTextBox1.Text = Properties.Settings.Default.SteamLocation;
if (Properties.Settings.Default.CloseCheck == false)
{
metroCheckBox3.Checked = false;
}
if (Properties.Settings.Default.CloseCheck == true)
{
metroCheckBox3.Checked = true;
}
if (Properties.Settings.Default.StartWindows == false)
{
metroCheckBox2.Checked = false;
}
if (Properties.Settings.Default.StartWindows == true)
{
metroCheckBox2.Checked = true;
}
}
// Encrypting and Decrypting
string base64_encode(string str)
{
return Convert.ToBase64String(System.Text.Encoding.UTF8.G etBytes(str));
listBox1.Items.Add(DateTime.Now + " - Encoded");
}
string base64_decode(string str)
{
return System.Text.Encoding.UTF8.GetString(Convert.FromBa se64String(str));
listBox1.Items.Add(DateTime.Now + " - Decoded");
}
// Kill Steam.exe Process
void kill_steam()
{
try
{
Process[] proc = Process.GetProcessesByName("Steam");
proc[0].Kill();
listBox1.Items.Add(DateTime.Now + " - Killed Steam.exe Process");
}
catch { }
}
//Log Into Steam
void login_steam(string steam_location, string username, string password)
{
Process.Start(steam_location, " -login " + username + " " + base64_decode(password));
listBox1.Items.Add(DateTime.Now + " - Attempted Steam Login Under Account Name '" + username + "'");
}
//Write Settings
public void write_settings()
{
string output = "";
foreach (ListViewItem item in ListAccounts.Items)
{
for (int i = 0; i < item.SubItems.Count; i++)
output += item.SubItems[i].Text.Replace("|", "/") + "|";
output += Environment.NewLine;
}
System****.File.WriteAllText(Properties.Settings.D efault.AccountLocation + "/SasData.dat", output);
listBox1.Items.Add(DateTime.Now + " - Wrote Settings");
}
// Read Settings File
public void read_settings()
{
ListAccounts.Items.Clear();
if (!System****.File.Exists(Properties.Settings.Defau lt.AccountLocation + "/SasData.dat"))
return;
var file = new StreamReader(Properties.Settings.Default.AccountLo cation + "/SasData.dat");
string line;
while ((line = file.ReadLine()) != null)
{
string[] data = line.Split('|');
var item = new ListViewItem(data);
ListAccounts.Items.Add(item);
}
file.Close();
listBox1.Items.Add(DateTime.Now + " - Read Settings");
}
// Clear Files
void ClearFiles()
{
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SasData.dat"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SasData.dat");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/ExportedLog.txt"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/ExportedLog.txt");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroCustomize.exe"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroCustomize.exe");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroCustomize.zip"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroCustomize.zip");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SteamAccountQuickLaunch.exe"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SteamAccountQuickLaunch.exe");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SteamAccountQuickLaunch.zip"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SteamAccountQuickLaunch.zip");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroFramework.dll"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroFramework.dll");
}
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroFramework.zip"))
{
System****.File.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroFramework.zip");
}
if (System****.Directory.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/"))
{
System****.Directory.Delete("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/");
}
listBox1.Items.Add(DateTime.Now + " - Cleared Files");
}
// Create Files
void CreateFiles()
{
System****.Directory.CreateDirectory("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/");
System****.File.Create("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/SasData.dat");
System****.File.Create("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/ExportedLog.txt");
listBox1.Items.Add(DateTime.Now + " - Created Files");
}
// Dark Theme
void Darktheme()
{
metroLabel1.ForeColor = Color.White;
metroLabel2.ForeColor = Color.White;
metroLabel3.ForeColor = Color.White;
metroLabel4.ForeColor = Color.White;
this.Theme = MetroThemeStyle.Dark;
metroTabControl1.Theme = MetroThemeStyle.Dark;
metroTabPage1.Theme = MetroThemeStyle.Dark;
metroTabPage2.Theme = MetroThemeStyle.Dark;
metroTabPage4.Theme = MetroThemeStyle.Dark;
ListAccounts.BackColor = Color.FromArgb(17, 17, 17);
ListAccounts.ForeColor = Color.White;
listBox1.BackColor = Color.FromArgb(17, 17, 17);
listBox1.ForeColor = Color.White;
metroCheckBox2.ForeColor = Color.White;
metroCheckBox3.ForeColor = Color.White;
metroCheckBox2.BackColor = Color.FromArgb(17, 17, 17);
metroCheckBox3.BackColor = Color.FromArgb(17, 17, 17);
ListAccounts.Refresh();
listBox1.Refresh();
this.Refresh();
metroTabControl1.Refresh();
metroCheckBox2.Refresh();
metroCheckBox3.Refresh();
metroTabPage1.Refresh();
metroTabPage2.Refresh();
metroTabPage4.Refresh();
listBox1.Items.Add(DateTime.Now + " - Applied Dark Theme");
}
// Light Theme
void LightTheme()
{
metroLabel1.ForeColor = Color.Black;
metroLabel2.ForeColor = Color.Black;
metroLabel3.ForeColor = Color.Black;
metroLabel4.ForeColor = Color.Black;
this.Theme = MetroThemeStyle.Light;
metroTabControl1.Theme = MetroThemeStyle.Light;
metroTabPage1.Theme = MetroThemeStyle.Light;
metroTabPage2.Theme = MetroThemeStyle.Light;
metroTabPage4.Theme = MetroThemeStyle.Light;
ListAccounts.BackColor = Color.White;
ListAccounts.ForeColor = Color.Black;
listBox1.BackColor = Color.White;
listBox1.ForeColor = Color.Black;
metroCheckBox2.ForeColor = Color.Black;
metroCheckBox3.ForeColor = Color.Black;
metroCheckBox2.BackColor = Color.White;
metroCheckBox3.BackColor = Color.White;
ListAccounts.Refresh();
listBox1.Refresh();
this.Refresh();
metroTabControl1.Refresh();
metroCheckBox2.Refresh();
metroCheckBox3.Refresh();
metroTabPage1.Refresh();
metroTabPage2.Refresh();
metroTabPage4.Refresh();
listBox1.Items.Add(DateTime.Now + " - Applied Light Theme");
}
// Apply Theme
void ApplyTheme()
{
if (Properties.Settings.Default.Theme == "Dark")
{
Darktheme();
metroToggle1.Checked = true;
metroToggle1.Invalidate();
}
if (Properties.Settings.Default.Theme == "Light")
{
LightTheme();
metroToggle1.Checked = false;
metroToggle1.Invalidate();
}
listBox1.Items.Add(DateTime.Now + " - Applied Saved Theme");
}
// Load Form
void MainFormLoad(object sender, System.EventArgs e)
{
ApplyTheme();
ApplyStyle();
metroTabControl1.SelectedTab = metroTabPage1;
string version = Assembly.GetExecutingAssembly().GetName().Version. ToString();
metroLabel4.Text = "Build " + version;
this.ShowInTaskbar = true;
listBox1.Items.Clear();
listBox1.Items.Add(DateTime.Now + " - Loaded Steam Account Manager");
listBox1.Items.Add(DateTime.Now + " - Build " + version);
read_settings();
if (Properties.Settings.Default.FirstUse1 == true)
{
Properties.Settings.Default.FirstUse1 = false;
this.TopMost = false;
var FirstUse = new FirstUse();
if (FirstUse.ShowDialog(this) == DialogResult.OK)
{
Properties.Settings.Default.AccountLocation = "C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager";
Properties.Settings.Default.SteamLocation = @"C:\Program Files (x86)\Steam\Steam.exe";
metroTextBox1.Text = Properties.Settings.Default.SteamLocation;
Properties.Settings.Default.Save();
ApplyTheme();
ApplyStyle();
read_settings();
this.TopMost = true;
listBox1.Items.Add(DateTime.Now + " - Successfully Executed First Launch");
this.TopMost = false;
}
}
}
// Steam Login
void LoginToolStripMenuItemClick(object sender, System.EventArgs e)
{
if (ListAccounts.SelectedItems.Count == 1)
{
foreach (var process in Process.GetProcessesByName("Steam.exe"))
{
process.Kill();
}
ListAccounts.SelectedItems[0].SubItems[2].Text = DateTime.Now.ToString("dd/MM/yyyy");
kill_steam();
login_steam(Properties.Settings.Default.SteamLocat ion, ListAccounts.SelectedItems[0].SubItems[0].Text, ListAccounts.SelectedItems[0].SubItems[1].Text);
}
write_settings();
if(Properties.Settings.Default.CloseCheck == true)
{
this.Close();
}
}
// Add Account
void AddAccountToolStripMenuItemClick(object sender, System.EventArgs e)
{
var form_account = new form_account();
if (form_account.ShowDialog(this) == DialogResult.OK)
{
string[] row = { form_account.username, base64_encode(form_account.password), "", form_account.account };
var item = new ListViewItem(row);
ListAccounts.Items.Add(item);
write_settings();
listBox1.Items.Add(DateTime.Now + " - Added Account " + form_account.username);
}
}
// Delete Accout
void DeleteToolStripMenuItemClick(object sender, System.EventArgs e)
{
foreach (ListViewItem item in ListAccounts.SelectedItems)
{
item.Remove();
listBox1.Items.Add(DateTime.Now + " - Removed " + ListAccounts.SelectedItems);
}
write_settings();
}
// shut down steam.exe
void ShutdownSteamToolStripMenuItemClick(object sender, System.EventArgs e)
{
kill_steam();
listBox1.Items.Add(DateTime.Now + " - Stopped Steam.exe process");
}
// Close
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
// Add To Startup
private void metroCheckBox2_CheckedChanged(object sender, EventArgs e)
{
if (metroCheckBox2.Checked == true)
{
Properties.Settings.Default.StartWindows = true;
if (System****.File.Exists(Environment.GetFolderPath( Environment.SpecialFolder.Startup) + "/Steam Account Manager.exe"))
{
}
else
{
System****.File.Copy("Steam Account Manager.exe", Environment.GetFolderPath(Environment.SpecialFolde r.Startup) + "/Steam Account Manager.exe");
listBox1.Items.Add(DateTime.Now + " - Added Steam Account Manager To Windows Startup");
}
Properties.Settings.Default.Save();
}
if (metroCheckBox2.Checked == false)
{
Properties.Settings.Default.StartWindows = false;
if (System****.File.Exists(Environment.GetFolderPath( Environment.SpecialFolder.Startup) + "/Steam Account Manager.exe"))
{
System****.File.Delete(Environment.GetFolderPath(E nvironment.SpecialFolder.Startup) + "/Steam Account Manager.exe");
listBox1.Items.Add(DateTime.Now + " - Removed Steam Account Manager From Windows Startup");
}
Properties.Settings.Default.Save();
}
}
// Auto Close
private void metroCheckBox3_CheckedChanged(object sender, EventArgs e)
{
if (metroCheckBox3.Checked == false)
{
Properties.Settings.Default.CloseCheck = false;
Properties.Settings.Default.Save();
listBox1.Items.Add(DateTime.Now + " - Disabled Auto Close On Login");
}
if (metroCheckBox3.Checked == true)
{
Properties.Settings.Default.CloseCheck = true;
Properties.Settings.Default.Save();
listBox1.Items.Add(DateTime.Now + " - Enabled Auto Close On Login");
}
Properties.Settings.Default.Save();
}
// Change Style
private void metroTile2_Click(object sender, EventArgs e)
{
// Generate Style
var m = new Random();
int next = m.Next(0, 13);
this.Style = (MetroColorStyle)next;
metroTabControl1.Style = (MetroColorStyle)next;
metroLabel1.Style = (MetroColorStyle)next;
metroLabel2.Style = (MetroColorStyle)next;
metroLabel3.Style = (MetroColorStyle)next;
metroLabel4.Style = (MetroColorStyle)next;
metroTile1.Style = (MetroColorStyle)next;
metroTile2.Style = (MetroColorStyle)next;
metroTile3.Style = (MetroColorStyle)next;
metroTile4.Style = (MetroColorStyle)next;
metroTile5.Style = (MetroColorStyle)next;
metroToggle1.Style = (MetroColorStyle)next;
metroCheckBox2.Style = (MetroColorStyle)next;
metroCheckBox3.Style = (MetroColorStyle)next;
Properties.Settings.Default.Style = (MetroColorStyle)next;
Properties.Settings.Default.Save();
//Refresh
metroLabel1.Refresh();
metroLabel2.Refresh();
metroLabel3.Refresh();
metroLabel4.Refresh();
metroToggle1.Refresh();
metroCheckBox2.Refresh();
metroCheckBox3.Refresh();
metroTile1.Refresh();
metroTile2.Refresh();
metroTile3.Refresh();
metroTile4.Refresh();
metroTile5.Refresh();
this.Refresh();
metroTabControl1.Refresh();
listBox1.Items.Add(DateTime.Now + " - Changed Style to Style " + (MetroColorStyle)next);
}
// Save Style
void ApplyStyle()
{
this.Style = Properties.Settings.Default.Style;
metroTabControl1.Style = Properties.Settings.Default.Style;
metroLabel1.Style = Properties.Settings.Default.Style;
metroLabel2.Style = Properties.Settings.Default.Style;
metroLabel3.Style = Properties.Settings.Default.Style;
metroLabel4.Style = Properties.Settings.Default.Style;
metroTile1.Style = Properties.Settings.Default.Style;
metroTile2.Style = Properties.Settings.Default.Style;
metroTile3.Style = Properties.Settings.Default.Style;
metroTile4.Style = Properties.Settings.Default.Style;
metroTile5.Style = Properties.Settings.Default.Style;
metroToggle1.Style = Properties.Settings.Default.Style;
metroCheckBox2.Style = Properties.Settings.Default.Style;
metroCheckBox3.Style = Properties.Settings.Default.Style;
listBox1.Items.Add(DateTime.Now + " - Applied Style");
}
// Uninstall
private void metroTile1_Click_1(object sender, EventArgs e)
{
DialogResult dialogResult = MetroMessageBox.Show(this, "Are you sure you want to uninstall Steam Account Manager?", "Steam Account Manager", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dialogResult == DialogResult.Yes)
{
ClearFiles();
MetroMessageBox.Show(this, "Files have been removed.Steam Account Manager will now close and you can delete it.", "Steam Account Manager",MessageBoxButtons.OK , MessageBoxIcon.Question);
this.Close();
}
else if (dialogResult == DialogResult.No)
{
return;
}
}
// Reset Files
private void metroTile3_Click(object sender, EventArgs e)
{
try
{
ClearFiles();
CreateFiles();
MetroMessageBox.Show(this, "Your Files Have Been Reset!", "Steam Account Manager", MessageBoxButtons.OK, MessageBoxIcon.Information);
if (System****.File.Exists("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroFramework.zip"))
{
string zipPath = "C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/MetroFramework.zip";
string extractPath = "C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/";
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
}
catch (System.Exception)
{
MetroMessageBox.Show(this, "An error occured while resetting your files, please restart Steam Account Manager and try again.", "Steam Account Manager", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
// Theme Toggle
private void metroToggle1_CheckedChanged(object sender, EventArgs e)
{
if (metroToggle1.Checked == true)
{
Darktheme();
Properties.Settings.Default.Theme = "Dark";
Properties.Settings.Default.Save();
}
if (metroToggle1.Checked == false)
{
LightTheme();
Properties.Settings.Default.Theme = "Light";
Properties.Settings.Default.Save();
}
}
// Change Directory for Steam
private void metroTile4_Click(object sender, EventArgs e)
{
metroTextBox1.Text = "";
openFileDialog1.InitialDirectory = ("C:/Program Files (x86)/Steam");
openFileDialog1.FileName = ("Steam.exe");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Properties.Settings.Default.SteamLocation = openFileDialog1.FileName;
metroTextBox1.Text = Properties.Settings.Default.SteamLocation;
Properties.Settings.Default.Save();
listBox1.Items.Add(DateTime.Now + " - Changed Steam.exe Directory");
}
}
// Save Log
private void metroTile5_Click(object sender, EventArgs e)
{
try
{
System****.StreamWriter SaveFile = new System****.StreamWriter("C:/Users/" + Environment.UserName + "/Documents/SteamAccountManager/ExportedLog.txt");
foreach (var item in listBox1.Items)
{
SaveFile.WriteLine(item);
}
SaveFile.Close();
MetroMessageBox.Show(this, "Log Successfully Exported!", "Steam Account Manager", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
MetroMessageBox.Show(this, "There was an error exporting the log!", "Steam Account Manager", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
// Checkbox message timer
private void timer5_Tick(object sender, EventArgs e)
{
timer5.Stop();
MetroMessageBox.Show(this, "You need to download Steam Acocunt Quick Launch from the extras tab first.", "Steam Account Manager", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}