/// </param>

  /// <returns>ERROR_SUCCESS сообщает об успешном вызове функции.

  /// В случае ошибки возвращается ненулевое значение

  /// </returns>

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegCreateKeyEx(

   UIntPtr hkey, String lpSubKey, uint Reserved, StringBuilder lpClass,

   uint dwOptions, KeyAccess samDesired, IntPtr lpSecurityAttributes,

   ref UIntPtr phkResult, ref uint lpdwDisposition);

  /// <summary>

  /// Функция для удаления раздела реестра

  /// </summary>

  /// <param name='hkey'>[in] Дескриптор к удаляемому разделу или

  /// одна из ветвей реестра: HKCR, HKCU, HKLM.

  /// </param>

  /// <param name='subkeyName'>[in] Имя удаляемого раздела.

  /// Нельзя использовать NULL

  /// </param>

  /// <returns>ERROR_SUCCESS сообщает об успешном вызове функции

  /// В случае ошибки возвращается ненулевое значение

  /// </returns>

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegDeleteKey(UIntPtr hkey, string subkeyName );

  /// <summary>

  /// Функция для открытия заданного раздела реестра.

  /// </summary>

  /// <param name='hkey'>[in] Дескриптор к открываемому разделу

  /// или одна из ветвей реестра HKCR, HKCU, HKLM.</param>

  /// <param name='lpSubKey'>[in] Имя открываемого раздела

  /// </param>

  /// <param name='ulOptions'>[in] Зарезервированный параметр.

  /// Установлен равным 0</param>

  /// <param name='samDesired'>[in] He поддерживается. Установите

  /// в 0.</param>

  /// <param name='phkResult'>[out] Переменная, получаемая от

  /// дескриптора открытого раздела. Если вы больше не нуждаетесь

  /// в дескрипторе, то вызовите функцию RegCloseKey для его

  /// закрытия</param>

  /// <returns>ERROR_SUCCESS сообщает об успешном вызове функции.

  /// В случае ошибки возвращается ненулевое значение

  /// </returns>

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegOpenKeyEx(

   UIntPtr hkey, String lpSubKey, uint ulOptions, KeyAccess samDesired,

   ref UIntPtr phkResult);

  /// <summary>

  /// Функция получает тип и данные из заданного раздела реестра

  /// </summary>

  /// <param name='hkey'>[in] Дескриптор к открываемому разделу

  /// или одна из ветвей реестра: HKCR, HKCU, HKLM.</param>

  /// <param name='lpValueName'>[in] Значение параметра.

  /// </param>

  /// <param name='lpReserved'>[in] Зарезервированный параметр.

  /// Установите в NULL.</param>

  /// <param name='lpType'>[out] Тип данных

  /// </param>

  /// <param name='lpData'>[out] Буфер, получающий данные.

  /// Данный параметр может быть NULL, если данные не требуются.

  /// </param>

  /// <param name='lpcbData'>[in/out] Размер буфера в байтах

  /// </param>

  /// <returns>ERROR_SUCCESS сообщает об успешном вызове функции.

  /// В случае ошибки возвращается ненулевое значение

  /// </returns>

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegQueryValueEx(

   UIntPtr hkey, String lpValueName, IntPtr lpReserved, ref KeyType lpType,

   byte[] lpData, ref uint lpcbData);

  /// <summary>

  /// Функция создает параметр в разделе реестра.

  /// </summary>

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegSetValueEx(

   UIntPtr hkey, String lpValueName, uint Reserved, KeyType dwType,

   byte[] lpData, uint cbData);

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegDeleteValue(UIntPtr hkey, string valueName);

  [DllImport('coredll.dll', SetLastError = true)]

  public static extern int RegCloseKey(UIntPtr hkey);

 }

}

Наличие внешней клавиатуры

С помощью класса Registry разработчик может получать или устанавливать значения параметров в реестре. Предположим, что нужно узнать, подключена ли к устройству внешняя клавиатура. За данную функцию отвечает параметр HasKeyboard в разделе HKEY_CURRENT_USERSoftwareMicrosoftShell. Если данный параметр имеет единичное значение, то система работает с подключенной внешней клавиатурой. Если значение равно нулю, то клавиатуры нет. В листинге 13.18 приведен код, показывающий, как можно извлечь значение интересующего параметра.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату