Вход/Регистрация
Программирование КПК и смартфонов на .NET Compact Framework
вернуться

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

Шрифт:

В листинге 13.17 приведен код, который будет работать в любой версии .NET Compact Framework.

Листинг 13.17

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace Registry_CS {

 class Registry {

/// <summary>

/// Создает ключ

/// </summary>

/// <param name="keyName">Имя создаваемого ключа</param>

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

/// ERROR_SUCCESS</ returns>

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

UIntPtr hkey = UintPtr.Zero;

uint disposition = 0;

try {

return

RegCreateKeyEx(root, keyName, 0, null, 0, KeyAccess.None, IntPtr.Zero,

ref hkey, ref disposition);

} finally {

if (UIntPtr.Zero != hkey) {

RegCloseKey(hkey);

}

}

}

/// <summary>

/// Удаляет ключ

/// </summary>

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

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

/// 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);

  • Читать дальше
  • 1
  • ...
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: