This is defenitly not the best code but it does what it should ;p[sourcecode lang="csharp"] using System; using System.Text; using System.Text.RegularExpressions; using System.IO; using System.Windows.Forms; using Microsoft.Win32;namespace AoC_GUI_Patcher { public partial class Form1 : Form { public Form1() { InitializeComponent(); // Welcome Text WriteMSG(" _______ _____ _______ ______ __ _______",false); WriteMSG(".-----.| | |_| _ | __ \\__|__ |",false); WriteMSG("|__ --|| - | | | < | __|",false); WriteMSG("|_____||_______|_______|___|___|___|__|__|_______|",false); WriteMSG("-=======[ AOC XML PATCHER by SOLARiZ.de ]=======-",false); WriteMSG(" [ MARCO GÖTZE | MG SOLARIZ.DE ]", false); WriteMSG(" ", false); //richTextBox1.Text = "Age of Conan custom GUI Version Patcher\nProgrammed by Marco 'sOLARiZ' Goetze\nPlease visit my Website: www.solariz.de\n\n";}private void textBox1_TextChanged(object sender, EventArgs e) {}private void button1_Click(object sender, EventArgs e) {}private void Form1_Load(object sender, EventArgs e) { GetAOCPath(); //get_current_version(""); linkLabel1.Text = "Version 1.3"; }private void button2_Click(object sender, EventArgs e) {}public void GetAOCPath() { // Getting AOCPAth form registry string AoCPath = ""; WriteMSG("- Trying to read your AOC Path from Registry",false); RegistryKey regkey;/* new Microsoft.Win32 Registry Key */ // 32Bit if (AoCPath == "") { try { regkey = Registry.LocalMachine.OpenSubKey(@"Software\Funcom\Age of Conan"); AoCPath = (string)regkey.GetValue("LastInstalledClient"); WriteMSG("* 32Bit RegKey found", true); } catch { WriteMSG("* 32Bit RegKey not Found", true); } } // 64Bit if (AoCPath == "") { try { regkey = Registry.LocalMachine.OpenSubKey(@"Software\Wow6432Node\Funcom\Age of Conan"); AoCPath = (string)regkey.GetValue("LastInstalledClient"); WriteMSG("* 64Bit RegKey found", true); } catch { WriteMSG("* 64Bit RegKey not Found", true); } } // Alternative AoCCombatLog if (AoCPath == "") { try { regkey = Registry.CurrentUser.OpenSubKey(@"Software\AoCCombatLog"); AoCPath = (string)regkey.GetValue("AoCPath"); WriteMSG("* CombatLog RegKey found", true); } catch { WriteMSG("* CombatLog RegKey not Found", true); } } if (AoCPath != "") { textBox1.Text = AoCPath; WriteMSG("- AoCPath entry found: " + textBox1.Text,false); button4.Enabled = true; } else { WriteMSG("! WARNING:\n\tCan't get the AOC Path from your Windows registry\n\tyou have to enter the path manualy!",false); }//end else }public string get_current_version(string SourceFile) { // aktuelle Versionsnummer holen string XMLChangeString = " string line = streamReader.ReadLine(); int pos = line.IndexOf(XMLChangeString, 0, StringComparison.CurrentCultureIgnoreCase); if (pos >= 0) { found = found + 1; doReplace = 1; // // Bestimmen der Versions Nummer temp_filename = filePath.Replace(ConanPathCustomized, ""); xmlver = get_current_version(temp_filename); line = Regex.Replace(line, XMLRegex, ": " + xmlver); WriteMSG(xmlver + ": \t" + temp_filename, false); } temp_buffer = temp_buffer + line; if (temp_buffer != "") temp_buffer = temp_buffer + "\r\n"; }// end while streamReader.Close(); // Neues File erstellen if (doReplace != 0) {doReplace = 0; try { StreamWriter tw = new StreamWriter(filePath); tw.WriteLine(temp_buffer); //tw.Write(temp_buffer); tw.Close(); patched = patched + 1; } catch { WriteMSG("! ERROR: Cant write to file:\n" + filePath, false); }// end catch }// end if //richTextBox1.Text = temp_buffer; //break; }// End for Each filePAth WriteMSG("Ready!\t(Patched " + patched + " of " + found + " Files)", false); WriteMSG("\nNow its time to crush your enemies, see them driven before you and hear the lamentations of the women !", false); } catch { string text = "! Error occured, AOC Directory not found !"; WriteMSG(text,false); }//end catch } catch { // Wird aufgerufen wenn die datei zur rev. bestimmung nicht gefunden wurde. string text = "! Error occured, AOC Directory not found !\n(Cant open " + ConanPathDefault + "\\Modules.xml)\n"; }// end catch } }private void button2_Click_1(object sender, EventArgs e) { GetAOCPath(); }private void button2_Hover_1(object sender, EventArgs e) { toolStripStatusLabel1.Text = "Read Conan Path from Registy"; }private void textBox1_TextChanged_1(object sender, EventArgs e) { if (textBox1.Text != "Enter Path of your AOC Installation") button4.Enabled = true; }private void button1_Click_1(object sender, EventArgs e) { get_current_version(""); }private void button1_Hover_1(object sender, EventArgs e) { toolStripStatusLabel1.Text = "Read current Ver. No. from Modules.xml"; }private void pictureBox1_Click(object sender, EventArgs e) { try { // launch default browser System.Diagnostics.Process.Start("http://www.solariz.de/aoc/20-aoc/76-aocpatcher"); } catch (Exception exp) { MessageBox.Show(exp.Message); } }} } [/sourcecode]

bitcoin Icon This page does not contain ads! If you find it usefull, feel free to send me some Support via Bitcoin.
1944UDg5P3zWpsejg1wGyHXAicxYK27HF2
✉ Marco Götze//