MyBooks.club
Все категории

Симон Робинсон - C# для профессионалов. Том II

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Симон Робинсон - C# для профессионалов. Том II. Жанр: Программирование издательство -,. Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
C# для профессионалов. Том II
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
17 сентябрь 2019
Количество просмотров:
319
Читать онлайн
Симон Робинсон - C# для профессионалов. Том II

Симон Робинсон - C# для профессионалов. Том II краткое содержание

Симон Робинсон - C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club
C# для профессионаловПлатформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.Для кого предназначена эта книгаЭта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.Основные темы книги• Все особенности языка C#• C# и объектно-ориентированное программирование• Приложения и службы Windows• Создание web-страниц и web-служб с помощью ASP NET• Сборки .NET• Доступ к данным при помощи ADO NET• Создание распределённых приложений с помощью NET Remoting• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II читать онлайн бесплатно

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон

RegistryKey HkMine = HkSoftware.CreateSubKey("MyOwnSoftware");

HkMine.SetValue("MyStringValue", "Hello World");

HkMine.SetValue(MyIntValue", 20);

Этот код задает для ключа два значения: MyStringValue будет иметь тип REG_SZ, а MyIntValue — тип REG_DWORD. В последующем примере будут рассмотрены только эти два типа.

RegistryKey.GetValue() работает по большей части таким же образом. Он определен для возврата объектной ссылки, а значит, он может на самом деле вернуть ссылку на string, если обнаружит значение типа REG_SZ, и int, если это значение имеет тип REG_DWORD:

string StringValue = (string)HkMine.GetValue("MyStringValue");

int IntValue = (int)HkMine.Get.Value("MyIntValue");

И наконец, по окончании чтения или модификации данных ключ необходимо закрыть:

HkMine.Close();

Помимо этих методов, RegistryKey реализует большое число других методов и свойств. Таблицы представляют выборку наиболее употребительных:

Свойства

Имя свойства Назначение Name Имя ключа (только для чтения) SubKeyCount Число потомков этого ключа ValueCount Сколько значений содержит ключ

Методы

Имя Назначение Close() Закрывает ключ CreateSubKey() Создает подключ с заданным именем (или открывает его, если он уже существует) DeleteSubKey() Удаляет заданный подключ DeleteSubKeyTree() Рекурсивно удаляет подключ и всех его потомков DeleteValue() Удаляет именованное значение из ключа GetSubKeyNames() Возвращает массив строк, содержащих имена подключей GetValue() Возвращает именованное значение GetValueNames() Возвраает массив строк, содержащих имена всех значений ключа OpenSubKey() Возвращает ссылку на экземпляр RegistryKey, который представляет заданный подключ SetValue() Задает именованное значение

Пример: SelfPlacingWindow

Проиллюстрируем использование классов реестра с помощью приложения, которое называется SelfPlacingWindow. Этот пример является простым приложением Windows на C#, которое в действительности почти не имеет свойств. Единственное, что можно сделать в этом приложении, это щелкнуть по кнопке, что приведет к появлению стандартного диалогового окна выбора цветов в Window (представляемому классом System.Windows.Forms.ColorDialog), чтобы можно было выбрать цвет который станет фоновым цветом формы

Это приложение обладает одним важным свойством, отсутствующим практически у всех остальных приложений разрабатываемых в этой книге. Если перетащить окно по экрану, изменить его размер, развернуть на весь экран или свернуть его перед выходом из приложения, оно будет запоминать новое положение, а также цвет фона, чтобы в следующий раз при запуске автоматически восстанавливалось последнее выбранное состояние. Оно запоминает эту информацию, так как записывает ее в реестр, когда закрывается. Таким образом, будут продемонстрированы не только сами классы реестра из .NET, но также типичное их использование, которое наверняка захочется скопировать в любое серьезное разрабатываемое коммерческое приложение Window.

Местом, где SelfPlacingWindow хранил свою информацию в реестре, является ключ HKLM/Software/WroxPress/SelfPlacingWindow. HKLM является обычным местом для хранения информации о конфигурации приложений, но отметим, что оно не является специфическим для пользователя. Вероятно, вам понадобится скопировать эту информацию в улей HK_Users, чтобы каждый пользователь имел свой собственный профиль.

При первом запуске этого примера он будет искать этот ключ и, очевидно, не найдет его. Поэтому вынужден будет использовать значения по умолчании для размера, цвета и позиции, которые задаются в среде разработчика. Пример имеет также окно списка, где выводит всю информацию, прочитанную в реестре. При первом запуске оно будет выглядеть следующим образом:

Если теперь изменить цвет фона и переместить или изменить размер окна приложения SelfPlacingWindow, оно создаст перед завершением ключ HKLM/Software/WroxPress/SelfPlacingWindow и запишет в него свою новую конфигурационную информацию. Можно проверить эту информацию с помощью regedit:

На этом экране можно видеть, что SelfPlacingWindow помещает ряд значений в ключ реестра. 

Значения Red, Green и Blue задают компоненты цветов, которые формируют выбранный цвет фона. О компонентах цвета подробно рассказывается в главе 21. Любой изображаемый цвет в системе может быть полностью описан этими тремя компонентами, каждый из которых представляется числом между 0 и 255 (или 0x00 и 0xff в шестнадцатеричном представлении). Указанные здесь значения задают ярко-зеленый цвет. Существуют также четыре дополнительных значения REG_DWORD, которые представляют положение и размер окна: X и Y являются координатами верхнего левого угла окна на рабочем столе. Width и Height задают размер окна WindowsState является единственным значением, для которого мы использовали строковый тип данных (REG_SZ), и оно может содержать одну из строк normal, maximized или minimized, в зависимости от конечного состояния окна при выходе из приложения.

Если теперь запустить SelfPlacingWindow снова, то оно будет считывать этот ключ реестра и автоматически позиционировать себя соответственно:

В этот раз, когда происходит выход из SelfPlacingWindow, приложение будет перезаписывать предыдущие настройки в реестре новыми значениями, существующими во время выхода из приложения. Чтобы создать код примера, мы создаем проект Windows Forms в Visual Studio.NET и добавляем окно списка и кнопку, используя набор инструментов среды разработчика. Мы изменим имена этих элементов управления соответственно на listBoxMessages и buttonChooseColor. Также необходимо обеспечить использование пространства имен Microsoft.Win32.

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using Microsoft.Win32;

Нам необходимо добавить одно поле к основному классу Form1, который будет представлять окно диалога выбора цвета.

public class Form1 : System.Windows.Forms.Form {

 /// <summary>

 /// Обязательная переменная проектировщика.

 /// </summary>

 private System.СomponentModel.Container components;

 private System.Windows.Forms.ListBox ListBoxMessages;

 private system.Windows.Forms.Button buttonChooseColor;

 ColorDialog ChooseColorDialog = new ColorDialog();

Довольно много действий происходит в конструкторе Form1:

public Form1() {

 InitializeComponent();

 buttonChooseColor.Click += new EventHandler(OnClickChooseColor);

 try {

  if (ReadSettings() == false)

listBoxMessages.Items.Add("No information in registry");

  else

   listBoxMessages.Items.Add("Information read in from registry");

  StartPosition = FormStartPosition.Manual;

 } catch (Exception e) {

  listBoxMessages.Items.Add("A problem occured reading in data from registry:");

  listBoxMessages.Items.Add(e.Message);

 }

}

В этом конструкторе мы начинаем с создания метода обработки события нажатия пользователем кнопки. Обработчиком является метод с именем OnClickChooseColor (см. ниже). Считывание конфигурационной информации делается с помощью другого метода — ReadSettings(). ReadSettings() возвращает true, если находит информацию в реестре, и false, если не находит (что будет, по-видимому, иметь место, так как приложение выполняется первый раз). Мы помещаем эту часть конструктора в блок try на случай возникновения каких-либо исключений при считывании значений реестра (это может произойти, если вмешался некоторый пользователь и сделал какие-то изменения с помощью regedit).

Инструкция StartPosition = FormStartPosition.Manual; говорит форме взять свою начальную позицию из свойства DeskTopLocation вместо используемого по умолчанию положения в Window (поведение по умолчанию). Возможные значения берутся из перечисления FormStartPosition.

SelfPlacingWindow также является одним из немногих приложений в этой книге, для которого существенно используется добавление кода в метод Dispose(). Напомним, что Dispose() вызывается, когда приложение завершается нормально, так что это идеальное место для сохранения конфигурационной информации в реестре. Это делается с помощью другого метода, который будет написан,— SaveSettings():


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


C# для профессионалов. Том II отзывы

Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.