64 lines
1.2 KiB
C#
64 lines
1.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using Microsoft.Win32;
|
|
using Server;
|
|
|
|
namespace Server.Misc
|
|
{
|
|
public class DataPath
|
|
{
|
|
private static string CustomPath = "Data/Files";
|
|
|
|
public static void Configure()
|
|
{
|
|
if ( CustomPath != null )
|
|
Core.DataDirectories.Add( CustomPath );
|
|
|
|
if ( Core.DataDirectories.Count == 0 && !Core.Service )
|
|
{
|
|
Console.WriteLine( "Enter the Ultima Online directory:" );
|
|
Console.Write( "> " );
|
|
|
|
Core.DataDirectories.Add( Console.ReadLine() );
|
|
}
|
|
}
|
|
|
|
private static string GetPath( string subName, string keyName )
|
|
{
|
|
try
|
|
{
|
|
string keyString;
|
|
|
|
if( Core.Is64Bit )
|
|
keyString = @"SOFTWARE\Wow6432Node\{0}";
|
|
else
|
|
keyString = @"SOFTWARE\{0}";
|
|
|
|
using( RegistryKey key = Registry.LocalMachine.OpenSubKey( String.Format( keyString, subName ) ) )
|
|
{
|
|
if( key == null )
|
|
return null;
|
|
|
|
string v = key.GetValue( keyName ) as string;
|
|
|
|
if( String.IsNullOrEmpty( v ) )
|
|
return null;
|
|
|
|
if ( keyName == "InstallDir" )
|
|
v = v + @"\";
|
|
|
|
v = Path.GetDirectoryName( v );
|
|
|
|
if ( String.IsNullOrEmpty( v ) )
|
|
return null;
|
|
|
|
return v;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|