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 EQVersion
{
public partial class EQVersionForm : Form
{
public EQVersionForm()
{
InitializeComponent();
}
private void quitButton_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void EQVersionForm_Shown(object sender, EventArgs e)
{
exeLocationTextBox.Text = Path.Combine(Directory.GetCurrentDirectory(), "eqgame.exe");
if (!File.Exists(exeLocationTextBox.Text))
{
SelectFile();
}
else
{
ReadAndDisplayVersion();
}
}
private void SelectFile()
{
this.Enabled = false;
exeOpenFileDialog.InitialDirectory = exeLocationTextBox.Text;
DialogResult drResult = exeOpenFileDialog.ShowDialog();
if (drResult != DialogResult.OK)
Application.Exit();
exeLocationTextBox.Text = exeOpenFileDialog.FileName;
ReadAndDisplayVersion();
this.Enabled = true;
}
private void exeLocationButton_Click(object sender, EventArgs e)
{
SelectFile();
}
private void ReadAndDisplayVersion()
{
try
{
FileStream fs = File.OpenRead(exeOpenFileDialog.FileName);
byte[] buffer = new byte[fs.Length];
int bytesRead = fs.Read(buffer, 0, buffer.Length);
fs.Close();
if (bytesRead > 0)
{
string tmpBuffer = ASCIIEncoding.ASCII.GetString(buffer);
int startLoc = tmpBuffer.IndexOf("Client Version: %s %s") + 48;
versionTextBox.Text = tmpBuffer.Substring(startLoc);
startLoc += versionTextBox.TextLength + 1;
versionTextBox.Text += " " + tmpBuffer.Substring(startLoc);
}
else
{
versionTextBox.Text = "Unknown";
}
}
catch (Exception ex)
{
versionTextBox.Text = ex.Message;
}
}
}
}
Comments