1
我爲我的遊戲服務器製作了一個啓動器。 (魔獸世界) 我想獲得用戶瀏覽的遊戲的安裝路徑。 我正在使用此代碼瀏覽並獲取installpath,然後從installpath字符串中設置一些其他字符串,然後在我的註冊表項中執行strore操作。註冊表問題
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中,您將其選擇爲瀏覽窗口,然後該程序應將其存儲在Existence註冊表項中作爲C:\ ASD \ Data \,但它以這種方式存儲: C:\ ASDData,所以它forgots反斜線:S
看看這張圖:
http://img21.imageshack.us/img21/2829/regedita.jpg
我的程序工作在我的電腦上的冷靜,和我的朋友的電腦,但一些PC這個「bug」出來:S 我有Windows 7,與.NEt 3.5 請幫助我。
不知道嘗試,如果能解決你的問題,但使用'IO.Path.Combine'而不僅僅是添加路徑共同建議。 – 2010-05-17 08:37:02