Я сделал лаунчер для своего игрового сервера. (Мир Warcraft)
Я хочу получить путь установки игры, просматриваемый пользователем.
Я использую этот код для просмотра и получения installpath, затем устанавливаю некоторые другие строки из строки installpath, а затем просто перемещаюсь по моему ключу реестра.
using System;
using System.Drawing;
using System.Reflection;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Microsoft.Win32;
using System.IO;
using System.Net.NetworkInformation;
using System.Diagnostics;
using System.Runtime;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.Cryptography;
using System.Text;
using System.Net;
using System.Linq;
using System.Net.Sockets;
using System.Collections.Generic;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string InstallPath, WoWExe, PatchPath;
private void Form1_Load(object sender, EventArgs e)
{
RegistryKey LocalMachineKey_Existence;
MessageBox.Show("Browse your install location.", "Select Wow.exe");
OpenFileDialog BrowseInstallPath = new OpenFileDialog();
BrowseInstallPath.Filter = "wow.exe|*.exe";
if (BrowseInstallPath.ShowDialog() == DialogResult.OK)
{
InstallPath = System.IO.Path.GetDirectoryName(BrowseInstallPath.FileName);
WoWExe = InstallPath + "\\wow.exe";
PatchPath = InstallPath + "\\Data\\";
LocalMachineKey_Existence = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\ExistenceWoW");
LocalMachineKey_Existence.SetValue("InstallPathLocation", InstallPath);
LocalMachineKey_Existence.SetValue("PatchPathLocation", PatchPath);
LocalMachineKey_Existence.SetValue("WoWExeLocation", WoWExe);
}
}
}
}
Проблема в следующем:
На некоторых компьютерах он не хранится так, как должно быть. Например, ваш wow.exe находится в C: \ ASD \ wow.exe, вы выбираете его с помощью окон обзора, затем программа должна сохранить его в разделе реестра Exsence как C: \ ASD \ Data \, но он сохраняется следующим образом :
C: \ ASDData, поэтому он забывает обратную косую черту: S
Посмотрите на эту картинку:
http://img21.imageshack.us/img21/2829/regedita.jpg
Моя программа отлично работает на моем ПК и на компьютере моих друзей, но на некоторых компьютерах появляется эта "ошибка": S
У меня windows 7, с .NEt 3.5
Пожалуйста, помогите мне.