Чтение онлайн

ЖАНРЫ

Программирование КПК и смартфонов на .NET Compact Framework

Климов Александр Петрович

Шрифт:

/// ERROR_SUCCESS</returns>

public static int DeleteKey(UIntPtr root, string keyName) {

return RegDeleteKey(root, keyName);

}

/// <summary>

/// Создает строковой параметр в заданном ключе

/// </summary>

/// <param name="keyName">Имя ключа</param>

/// <param name="valueName">Имя
параметра</param>

/// <param name="stringData">Значение параметра</param>

/// <returns>В успешном случае возвращается

/// ERROR_SUCCESS</returns>

public static int CreateValueString(string keyName, string valueName,

string stringData) {

UIntPtr hkey = UintPtr.Zero;

try {

int result = RegOpenKeyEx(root, keyName, 0, KeyAccess.None, ref hkey);

if (ERROR_SUCCESS != result) return result;

byte[] bytes = Encoding.Unicode.GetBytes(stringData);

return RegSetValueEx(hkey, valueName, 0, KeyType.String, bytes,

(uint)bytes.Length);

} finally {

if (UIntPtr.Zero != hkey) {

RegCloseKey(hkey);

}

}

}

/// <summary>

/// Создает параметр типа DWORD в заданном ключе

/// </summary>

/// <param name="keyName">Имя ключа</param>

/// <param name="valueName">Имя параметра</param>

/// <param name="dwordData">Значение параметра</param>

/// <returns>В успешном случае возвращается

/// ERROR_SUCCESS</returns>

public static int CreateValueDWORD(UIntPtr root, string keyName,

string valueName, uint dwordData) {

UIntPtr hkey = UintPtr.Zero;

try {

int result = RegOpenKeyEx(root, keyName, 0, KeyAccess.None, ref hkey);

if (ERROR_SUCCESS != result) return result;

byte[] bytes = BitConverter.GetBytes(dwordData);

return RegSetValueEx(hkey, valueName, 0, KeyType.Dword, bytes,

(uint)bytes.Length);

} finally {

if (UIntPtr.Zero != hkey) {

RegCloseKey(hkey);

}

}

}

/// <summary>

/// Создает двоичный параметр в заданном ключе

/// </summary>

/// <param name="keyName">Имя
ключа</param>

/// <param name="valueName">Имя параметра</param>

/// <param name="dwordData">Значение параметра</param>

/// <returns>B успешном случае возвращается

/// ERROR_SUCCESS</returns>

public static int CreateValueBinary(UIntPtr root, string keyName,

string valueName, uint binData) {

UIntPtr hkey = UintPtr.Zero;

try {

int result = RegOpenKeyEx(root, keyName, 0, KeyAccess.None, ref hkey);

if (ERROR_SUCCESS != result) return result;

byte[] data = BitConverter.GetBytes(binData);

return RegSetValueEx(hkey, valueName, 0, KeyType.Binary, data,

(uint)data.Length);

} finally {

if (UIntPtr.Zero != hkey) {

RegCloseKey(hkey);

}

}

}

/// <summary>

/// Получает значение строкового параметра

/// </summary>

/// <param name="keyName">Имя ключа</param>

/// <param name="valueName">Имя параметра</param>

/// <param name="stringResult">строковые данные</param>

/// <returns>В успешном случае возвращается

/// ERROR_SUCCESS</returns>

public static int GetStringValue(UIntPtr root, string keyName,

string valueName, ref string stringResult) {

UIntPtr hkey = UintPtr.Zero;

try {

int result = RegOpenKeyEx(root, keyName, 0, KeyAccess.None, ref hkey);

if (ERROR_SUCCESS != result) return result;

byte[] bytes = null;

uint length = 0;

KeyType keyType = KeyType.None;

result = RegQueryValueEx(hkey, valueName, IntPtr.Zero, ref keyType, null,

ref length);

if (ERROR_SUCCESS != result) return result;

keyType = KeyType.None;

bytes = new byte[length];

result = RegQueryValueEx(hkey, valueName, IntPtr.Zero, ref keyType, bytes,

ref length);

if (ERROR SUCCESS != result) return result;

stringResult = Encoding.Unicode.GetString(bytes, 0, bytes.Length);

Поделиться с друзьями: