<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Сайт по обучению программированию</title>
		<link>http://csharp.do.am/</link>
		<description>Статьи</description>
		<lastBuildDate>Tue, 10 Jan 2012 14:10:53 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://csharp.do.am/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Способ считывания расширения экрана</title>
			<description>&lt;span style=&quot;font-size:10pt;&quot;&gt;Доброго времени суток) Я придумал небольшой способ определения расширения экрана. &lt;br /&gt;&lt;/span&gt; &lt;br /&gt; Для того чтобы узнать расширение экрана создаем новую форму. &lt;br /&gt; Значение &lt;span style=&quot;color:blue&quot;&gt;StartPosition&lt;/span&gt; ставим &lt;span style=&quot;color:blue&quot;&gt;CenterScreen&lt;/span&gt;. на форму кидаем 2 &lt;span style=&quot;color:blue&quot;&gt;Label&lt;/span&gt;. &lt;br /&gt; Далее движемся в метод &lt;span style=&quot;color:blue&quot;&gt;Form1_Load&lt;/span&gt; и прописываем такой код: &lt;br /&gt; private void Form1_Load(object sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; int x1;//обьявляем переменные отвечающие за ширину &lt;br /&gt; int y1;//и высоту экрана &lt;br /&gt; x1 = 2*this.Location.X + this.Width;//высчитываем ширину &lt;br /&gt; y1 = 2*(this.Location.Y + this.Height/2+20);//высчитываем высоту экрана &lt;br /&gt; label1.Text =&quot;X=&quot;+x1.ToString();//записываем в первый label ширину экрана &lt;br /&gt; label2.Text = &quot;Y=&quot; + y1.ToString();// а сюда записываем высоту экрана &lt;br /&gt; } &lt;br /&gt; Команда this.Location.X- возвращает нам координату X верхнего...</description>
			<content:encoded>&lt;span style=&quot;font-size:10pt;&quot;&gt;Доброго времени суток) Я придумал небольшой способ определения расширения экрана. &lt;br /&gt;&lt;/span&gt; &lt;br /&gt; Для того чтобы узнать расширение экрана создаем новую форму. &lt;br /&gt; Значение &lt;span style=&quot;color:blue&quot;&gt;StartPosition&lt;/span&gt; ставим &lt;span style=&quot;color:blue&quot;&gt;CenterScreen&lt;/span&gt;. на форму кидаем 2 &lt;span style=&quot;color:blue&quot;&gt;Label&lt;/span&gt;. &lt;br /&gt; Далее движемся в метод &lt;span style=&quot;color:blue&quot;&gt;Form1_Load&lt;/span&gt; и прописываем такой код: &lt;br /&gt; private void Form1_Load(object sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; int x1;//обьявляем переменные отвечающие за ширину &lt;br /&gt; int y1;//и высоту экрана &lt;br /&gt; x1 = 2*this.Location.X + this.Width;//высчитываем ширину &lt;br /&gt; y1 = 2*(this.Location.Y + this.Height/2+20);//высчитываем высоту экрана &lt;br /&gt; label1.Text =&quot;X=&quot;+x1.ToString();//записываем в первый label ширину экрана &lt;br /&gt; label2.Text = &quot;Y=&quot; + y1.ToString();// а сюда записываем высоту экрана &lt;br /&gt; } &lt;br /&gt; Команда this.Location.X- возвращает нам координату X верхнего левого угла форму относительно верхнего левого угла экрана. &lt;br /&gt; Команда this.Location.Y- возвращает нам координату Y верхнего левого угла форму относительно верхнего левого угла экрана. &lt;br /&gt; Половину ширины экрана можно узнать по формуле: (this.Location.X + this.Width/2). Т.к. когда мы выбираем в свойстве &lt;span style=&quot;color:blue&quot;&gt;StartPosition&lt;/span&gt; &lt;span style=&quot;color:blue&quot;&gt;CenterScreen&lt;/span&gt; то форма располагается так чтобы центр формы совпадал с центром экрана. А чтоб узнать всю ширину нужно умножить эту формулу на 2 и мы получим:(2*this.Location.X + this.Width;)(простая математика)). &lt;br /&gt; С высотой дело обстоит малость проблематичней. Если записать формулу для половины высоты по аналогии ширины то мы получим вот такую формулу: (this.Location.Y + this.Height/2). &lt;br /&gt; Но тут загвоздка в том что при вычеслении высоты нам мешает строка &quot;ПУСК&quot;а. &lt;br /&gt; (this.Location.Y + this.Height/2)- при помощи данной формулы мы получаем половину размера экрана находящегося выше строки &quot;ПУСК&quot;. Нам же надо получить половину экрана с учетом строки &quot;ПУСК&quot;. Для этого просто прибавим к нашей формуле высоту строки &quot;ПУСК&quot; которая равна 20 пикселям. &lt;br /&gt; Ну а дальше так же умножаем на 2 и вуаля получаем расширение экрана)))</content:encoded>
			<link>https://csharp.do.am/blog/sposob_schityvanija_rasshirenija_ehkrana/2012-01-10-15</link>
			<category>Работа с контролами Visual C# 2010</category>
			<dc:creator>AleXonis</dc:creator>
			<guid>https://csharp.do.am/blog/sposob_schityvanija_rasshirenija_ehkrana/2012-01-10-15</guid>
			<pubDate>Tue, 10 Jan 2012 14:10:53 GMT</pubDate>
		</item>
		<item>
			<title>Namespace в подробностях</title>
			<description>На уроке мы столкнулись с понятием namespace я решил написать статью про это если кто то не уловил информацию про namespace так как мы малость отвлеклись:)) &lt;br /&gt; Вот что про это нам говорить всем известная википедия: &lt;br /&gt; Пространство имён (англ. namespace) — некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён). Идентификатор, определенный в пространстве имён, ассоциируется с этим пространством. Один и тот же идентификатор может быть независимо определён в нескольких пространствах. Таким образом, значение, связанное с идентификатором, определённым в одном пространстве имён, может иметь (или не иметь) такое же (а скорее, другое) значение, как и такой же идентификатор, определённый в другом пространстве. Языки с поддержкой пространств имён определяют правила, указывающие, к какому пространству имён принадлежит идентификатор (то есть его определение). &lt;br /&gt;&lt;br /&gt; На...</description>
			<content:encoded>На уроке мы столкнулись с понятием namespace я решил написать статью про это если кто то не уловил информацию про namespace так как мы малость отвлеклись:)) &lt;br /&gt; Вот что про это нам говорить всем известная википедия: &lt;br /&gt; Пространство имён (англ. namespace) — некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён). Идентификатор, определенный в пространстве имён, ассоциируется с этим пространством. Один и тот же идентификатор может быть независимо определён в нескольких пространствах. Таким образом, значение, связанное с идентификатором, определённым в одном пространстве имён, может иметь (или не иметь) такое же (а скорее, другое) значение, как и такой же идентификатор, определённый в другом пространстве. Языки с поддержкой пространств имён определяют правила, указывающие, к какому пространству имён принадлежит идентификатор (то есть его определение). &lt;br /&gt;&lt;br /&gt; Например, Андрей работает в компании X, а ID (сокр. от англ. Identifier — идентификатор) его как работника равен 123. Олег работает в компании Y, а его ID также равен 123. Единственное (с точки зрения некоей системы учета), благодаря чему Андрей и Олег могут быть различимы при совпадающих ID, это их принадлежность к разным компаниям. Различие компаний в этом случае представляет собой систему различных пространств имён (одна компания — одно пространство). Наличие двух работников в компании с одинаковыми ID представляет большие проблемы при их использовании, например, по платёжному чеку, в котором будет указан работник с ID 123, будет весьма затруднительно определить работника, которому этот чек предназначается. &lt;br /&gt;&lt;br /&gt; Вот короткий пример: &lt;br /&gt; В следующем примере показано, как можно вызвать статический метод вложенного пространства имен. &lt;br /&gt; C# &lt;br /&gt;&lt;br /&gt; namespace SomeNameSpace &lt;br /&gt; { &lt;br /&gt; public class MyClass &lt;br /&gt; { &lt;br /&gt; static void Main() &lt;br /&gt; { &lt;br /&gt; Nested.NestedNameSpaceClass.SayHello(); &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; // a nested namespace &lt;br /&gt; namespace Nested &lt;br /&gt; { &lt;br /&gt; public class NestedNameSpaceClass &lt;br /&gt; { &lt;br /&gt; public static void SayHello() &lt;br /&gt; { &lt;br /&gt; Console.WriteLine(&quot;Hello&quot;); &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; // Output: Hello &lt;br /&gt;&lt;br /&gt; В программировании на C# пространства имен используются с полной нагрузкой по двум направлениям. Во-первых, платформа .NET Framework использует пространства имен для организации большинства классов. Это выполняется следующим образом. &lt;br /&gt; C# &lt;br /&gt; System.Console.WriteLine(&quot;Hello World!&quot;); &lt;br /&gt;&lt;br /&gt; System — это пространство имен, а Console — класс в нем. Использование ключевого слова using может отменить необходимость полного имени, как показано в следующем примере. &lt;br /&gt; C# &lt;br /&gt; using System; &lt;br /&gt; Console.WriteLine(&quot;Hello&quot;); &lt;br /&gt; Console.WriteLine(&quot;World!&quot;); &lt;br /&gt;&lt;br /&gt; То есть мы получаем возможность сократить код нашей программы при использовании так называемого пространства имен. &lt;br /&gt; Надеюсь статья будет полезна для ознакомления! &lt;br /&gt; Источники:http://ru.wikipedia.org &lt;br /&gt; http://msdn.microsoft.com/ru-ru/library/ms123401</content:encoded>
			<link>https://csharp.do.am/blog/namespace_v_podrobnostjakh/2011-12-11-14</link>
			<category>Работа с классами .Net Framework 4.0</category>
			<dc:creator>AleXonis</dc:creator>
			<guid>https://csharp.do.am/blog/namespace_v_podrobnostjakh/2011-12-11-14</guid>
			<pubDate>Sun, 11 Dec 2011 16:28:42 GMT</pubDate>
		</item>
		<item>
			<title>Демо тест на сертификацию IT</title>
			<description>Это я слизал тест на IT сертификацию. Для тех кому это интересно конечно)) закиньте эту статью в переводчик на гугле и будет вам счастье)) &lt;br /&gt; Если найдете странные слова(т.е. странно не понятно написаные) пишите в ЛС исправлю. &lt;br /&gt; Сылка на сам тест вот: http://www.measureup.com/Search.aspx?k=70-511 &lt;br /&gt; Это один из представленных там. Если кому потребуеться пишите выложу следующие!) &lt;br /&gt; З.Ы. не забывайте про форум и сайт в принципе господа. &lt;br /&gt;&lt;br /&gt; Start Page &lt;br /&gt; 70-511CS - TS: Windows Applications Development with Microsoft .NET Framework 4 C# &lt;br /&gt; Your 5 question test has been generated. Click Start Test to begin &lt;br /&gt; Before you take the vendor certification exam MeasureUp recommends that you take advantage of at least three of the available modes of study before taking the practice Test in Certification mode; including Study mode, Missed Question mode, and Adaptive mode, when available. Once you’ve completed your Test preparation, MeasureUp recommends that yo...</description>
			<content:encoded>Это я слизал тест на IT сертификацию. Для тех кому это интересно конечно)) закиньте эту статью в переводчик на гугле и будет вам счастье)) &lt;br /&gt; Если найдете странные слова(т.е. странно не понятно написаные) пишите в ЛС исправлю. &lt;br /&gt; Сылка на сам тест вот: http://www.measureup.com/Search.aspx?k=70-511 &lt;br /&gt; Это один из представленных там. Если кому потребуеться пишите выложу следующие!) &lt;br /&gt; З.Ы. не забывайте про форум и сайт в принципе господа. &lt;br /&gt;&lt;br /&gt; Start Page &lt;br /&gt; 70-511CS - TS: Windows Applications Development with Microsoft .NET Framework 4 C# &lt;br /&gt; Your 5 question test has been generated. Click Start Test to begin &lt;br /&gt; Before you take the vendor certification exam MeasureUp recommends that you take advantage of at least three of the available modes of study before taking the practice Test in Certification mode; including Study mode, Missed Question mode, and Adaptive mode, when available. Once you’ve completed your Test preparation, MeasureUp recommends that you pass the MeasureUp Test, in Certification mode, with a score of 100% - twice. &lt;br /&gt; When you have completed the test please click the SCORE button located on the top menu bar. All answers are final upon scoring the test. Your test results will be displayed if available. &lt;br /&gt; Some features of this test include: &lt;br /&gt; Tests delivered in Certification Mode closely simulate the actual certification test environment you will find at your local testing center. These tests are the same length as the certification exam and are timed. Unlike tests delivered in other modes, these tests do not allow you to display the answers until after the test. Additionally, these tests do not allow you to reconfigure the environment or turn off the timer. &lt;br /&gt; To help you learn the material on which you are being Tested, rather than simply helping you memorize the material, the question order is randomized for each test. Additionally, the answer order for each question is also randomized. &lt;br /&gt; After the test, you can display the answer(s) to each question plus a comprehensive explanation that includes references to further information. &lt;br /&gt; After your test, you are graphically presented with your score plus a visual breakdown of how you preformed on each test objective. &lt;br /&gt; You are using Microsoft .NET Framework 4 to create a Windows Forms application. &lt;br /&gt; The application has a Generate Report button that calls a long-running procedure named generateReport. The generateReport procedure uses a loop to process a collection of data. You need to ensure that the user can interact with the application while the report is running. &lt;br /&gt; What should you do? &lt;br /&gt; О * Add a BackgroundWorker component to the form. &lt;br /&gt; * Call the generateReport method within the DoWork event procedure. &lt;br /&gt; * Call the RunWorkerAsync method from the button&apos;s Click event procedure. &lt;br /&gt; О * Modify the generateReport method to use Parallel.ForEach. &lt;br /&gt; * Call the generateReport method from the button&apos;s Click event procedure. &lt;br /&gt; О * Add a BackgroundWorker component to the form. &lt;br /&gt; * Call the generateReport method within the RunWorkerAsync event procedure. &lt;br /&gt; * Call the DoWork method from the button&apos;s Click event procedure. &lt;br /&gt; Questions: &lt;br /&gt; О * Modify the generateReport method to use Parallel.For. &lt;br /&gt; * Call the generateReport method from the button&apos;s Click event procedure. &lt;br /&gt;&lt;br /&gt; 01 &lt;Windo&amp;#92;v xmlns=&apos;&apos;http: 7schemas.microsoft.com winfx 2006/xaml presentation&quot; &lt;br /&gt; 02 xmlns:x=&quot;http^/schemas.microsoft.com winfx’2006 xaml&quot;&gt; &lt;br /&gt; 03 &lt;StackPanel Orientation=&quot;Horizontal,&apos;&gt; &lt;br /&gt; 04 &lt;Button Content—&apos;Cancel&quot;/&gt; &lt;br /&gt; 05 &lt;Button Content—&apos;Save&quot;/&gt; &lt;br /&gt; 06 &lt;Button Content—&apos;Print &quot;/&gt; &lt;br /&gt; 07 &lt;Button Content-&apos;Submit&apos;7&gt; &lt;br /&gt; 08 &lt;/StackPanel&gt; &lt;br /&gt; 09 &lt;Window&gt; &lt;br /&gt; You are using Microsoft .NET Framework 4 to create a Windows Presentation Foundation (WPF) application. You create the markup shown in the exhibit. (Line numbers are included for reference only.) You need to modify the markup to ensure that all Button controls on the window have a background color of Azure. &lt;br /&gt; What should you do? &lt;br /&gt; О Add the following markup between lines 08 and 09: &lt;br /&gt; &lt;Window.Resources&gt; &lt;br /&gt; &lt;Style x:Key=&quot;Button,,&gt; &lt;br /&gt; &lt;Setter Property=&quot;Background&quot; Value=&quot;Azure&quot;/&gt; &lt;br /&gt; &lt;/Style&gt; &lt;br /&gt; &lt;/Window.Resources&gt; &lt;br /&gt; О Add the following markup between lines 07 and 08: &lt;br /&gt; &lt;StackPanel.Resources&gt; &lt;br /&gt; &lt;Style x:Key=&quot;Window&quot; TargetType=nButton”&gt; &lt;br /&gt; &lt;Setter Property=&quot;Background&quot; Value=&quot;Azure&quot;/&gt; &lt;br /&gt; &lt;/Style&gt; &lt;br /&gt; &lt;/StackPanel.Resources&gt; &lt;br /&gt; О Add the following markup between lines 03 and 04: &lt;br /&gt; &lt; StackPa nel. Resources&gt; &lt;br /&gt; &lt;Style x:Key=&quot;Window&quot; TargetType=&quot;{x:Type Button}”&gt; &lt;br /&gt; &lt;Setter Property=&quot;Background&quot; Value=&quot;Azure&quot;/&gt; &lt;br /&gt; &lt;/Style&gt; &lt;br /&gt; &lt;/StackPanel.Resources&gt; &lt;br /&gt; О Add the following markup between lines 02 and 03: &lt;br /&gt; &lt;Window.Resources&gt; &lt;br /&gt; &lt;Style TargetType=&quot;Button&quot;&gt; &lt;br /&gt; &lt;/StackPanel.Resources&gt; &lt;br /&gt; О Add the following markup between lines 03 and 04: &lt;StackPanel.Resources&gt; &lt;br /&gt; &lt;Style x:Key=&quot;Window&quot; TargetType=&quot;{x:Type Button}&quot;&gt; &lt;Setter Property=&quot;Background&quot; Value=&quot;A2ure&quot;/&gt; &lt;/Style&gt; &lt;br /&gt; &lt;/StackPanel.Resources&gt; &lt;br /&gt; О Add the following markup between lines 02 and 03: &lt;Window.Resources&gt; &lt;br /&gt; &lt;Style TargetType=&quot;Button&quot;&gt; &lt;br /&gt; &lt;Setter Property=&quot;Background&quot; Value=&quot;A2ure&quot;/&gt; &lt;/Style&gt; &lt;br /&gt; &lt;/Window.Resources&gt; &lt;br /&gt;&lt;br /&gt; 01 public class Orderltem { &lt;br /&gt; 02 private Int32 _quantity; &lt;br /&gt; 03 private String _productNum; &lt;br /&gt; 04 public Int32 Quantity &lt;br /&gt; 05 { &lt;br /&gt; 06 get{ return _quantity; } &lt;br /&gt; 07 set{ &lt;br /&gt; 08 &lt;br /&gt; 09 quantity=value; } &lt;br /&gt; 10 } &lt;br /&gt; 11 &lt;br /&gt; 12 &lt;br /&gt; 13 } &lt;br /&gt; You are using Microsoft .NET Framework 4 to create a Windows Presentation Foundation (WPF) application. &lt;br /&gt; Your application includes elements that are bound to a collection that contains instances of the class shown in the exhibit. (Line numbers are included for reference only.) &lt;br /&gt; The collection is used by several different pages in the application. You need to ensure that the Quantity value is always set to a value greater than 0. Your solution should minimize redundant code. &lt;br /&gt; What two things should you do? (Each correct answer presents part of the solution. Choose two.) &lt;br /&gt; Add code to implement the IDataErrorlnfo.Validate method at line 12. &lt;br /&gt; Modify the class so that it implements IDataErrorlnfo. Add code to implement the IDataErrorlnfo.Error property at line 11. &lt;br /&gt; V&apos; Add validation code to line 08. &lt;br /&gt; V Add an ErrorProvider to the page. &lt;br /&gt; Add code to implement an indexer at line 12. &lt;br /&gt; &lt;Grid Name=&quot;grd&quot; PreviewT extInput=&quot;grd_PreviewT extlnput&quot;&gt; &lt;br /&gt; &lt;Grid.ColumnDefmitions&gt; &lt;br /&gt; &lt;ColumnDefmition/&gt; &lt;br /&gt; &lt;ColumnDefmition/&gt; &lt;br /&gt; &lt;ColumnDefmition/&gt; &lt;br /&gt; &lt;/Grid.ColumnDefmitions&gt; &lt;br /&gt; &lt;Grid.RowDefmitions&gt; &lt;br /&gt; &lt;Ro wDefmition /&gt; &lt;br /&gt; &lt;Ro wDefmition /&gt; &lt;br /&gt; &lt;/Grid.Ro&amp;#92;vDefinitions&gt; &lt;br /&gt; &lt;B utt о n Grid. С olumn=&apos; r0&apos;&apos; Name= &quot;btnAdd ’ &gt; Add&lt;;TB ut ton&gt; &lt;br /&gt; &lt;Button Grid.Column=&quot;l !,Name=&apos;FbtiiMultiplyl,&gt;Multiply&lt;/Button&gt; &lt;br /&gt; &lt;Button Grid. Column=M2 &quot; Name=&quot;btnClear&quot;&gt;Clear&lt;/BuTton&gt; &lt;br /&gt; &lt;TextBox Grid. Column-&apos;0H Grid.Row=,,l&quot;Name=&quot;oplMx/TextBox&gt; &lt;br /&gt; &lt;TextBox Grid. Column-’ 1&quot; Grid.Row=&quot; 1&quot; Name=&quot;op2&quot;x/TextBox&gt; &lt;br /&gt; &lt;TextBox Grid.Column=&quot;2&quot; Grid.Row=&apos;T,Name=&quot;result&quot;&gt;&lt;/TextBox&gt; &lt;br /&gt; &lt;/Grid&gt; &lt;br /&gt; You are using Microsoft .NET Framework 4 to create a Windows Presentation Foundation (WPF) application. You create a page that has the code shown in the exhibit. If users enter a non-numeric character into opl or op2, that character should be ignored. &lt;br /&gt; You need to implement grd_PreviewTextInput to meet the requirements. &lt;br /&gt; What code should you use? &lt;br /&gt; О private void grd_PreviewTextInput(object sender, TextCompositionEventArgs e) &lt;br /&gt; FrameworkElement fe = (FrameworkElement)sender; double result; &lt;br /&gt; if ((fe.Name == &quot;opl&quot;) || (fe.Name == &quot;op2&quot;)) &lt;br /&gt; if (!(double.TryParse(sender.Text, out result))) &lt;br /&gt; { &lt;br /&gt; e.Handled = true; &lt;br /&gt; } &lt;br /&gt; { &lt;br /&gt; e.Handled = true; &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; О private void grd_PreviewTextInput(object sender, TextCompositionEventArgs e) &lt;br /&gt; FrameworkElement fe = (FrameworkElement)e.Source; double result; &lt;br /&gt; if ((fe.Name == &quot;opl&quot;) | | (fe.Name == &quot;op2&quot;)) &lt;br /&gt; { &lt;br /&gt; if (!(double.TryParse(e.Text, out result))) e.Cancel = true; &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; О private void grd_PreviewTextInput(object sender, TextCom position EventArgs e) &lt;br /&gt; FrameworkElement fe = (FrameworkElement)sender; double result; &lt;br /&gt; if ((fe.Name == &quot;opl&quot;) | | (fe.Name == &quot;op2&quot;)) if (!(double.TryParse(sender.Text, out result))) &lt;br /&gt; { &lt;br /&gt; e.Cancel = true; &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; О private void grd_PreviewTextInput(object sender, TextCom position EventArgs e) &lt;br /&gt; FrameworkElement fe = (FrameworkElement)e.Source; double result; &lt;br /&gt; if ((fe.Name == &quot;opl&quot;) | | (fe.Name == &quot;op2&quot;)) &lt;br /&gt; { &lt;br /&gt; if (!(double.TryParse(e.Text, out result))) &lt;br /&gt; { &lt;br /&gt; e.Handled = true; &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; &lt;StackPanel&gt; &lt;br /&gt; &lt;Rectangle x:Name=&quot;rect&quot; Width=&quot;200M Height=&quot;100&quot; Fill=r,Red&quot;&gt; &lt;br /&gt; &lt;Rectangle&gt; &lt;br /&gt; &lt;Button x:Name=&quot;button&quot; Width=&quot;100&quot; Height=&quot;50&quot;x,Button&gt; &lt;StackPanel.Triggers&gt; &lt;br /&gt; &lt;EventTrigger SourceName-&apos;button&quot; RoutedEvent=&quot;Button.Click&apos;&apos;&gt; &lt;BeginStoryboard&gt; &lt;br /&gt; &lt;Storyboard Storyboard.TargetName-&apos;rect&quot; StoryboardTargetProperty=M&amp;#92;Vidth&quot;&gt; &lt;DoubleAnimation From^OO” To=&quot;400M Duration=&quot;0:0:2&quot;&gt; &lt;br /&gt; &lt; DoubleAnimation&gt; &lt;br /&gt; &lt;/Storyboard&gt; &lt;br /&gt; &lt;Вegin Storyboard&gt; &lt;br /&gt; &lt;/EventTrigger&gt; &lt;br /&gt; &lt;/StackPanel.Triggers&gt; &lt;br /&gt; &lt;StackPanel&gt; &lt;br /&gt; Exhibit &lt;br /&gt; You are using Microsoft .NET Framework 4 to create a Windows Presentation Foundation (WPF) application. The markup is shown in the exhibit. You are writing a unit test to animate the rectangle. &lt;br /&gt; You need to cause the rectangle to animate without user interaction. &lt;br /&gt; What should you do? &lt;br /&gt; О * Call the AddHandler method of the Button class and pass a delegate as a parameter. &lt;br /&gt; * Implement the delegate to call the Begin method of the Storyboard class. &lt;br /&gt; О * Call the GetPattern method of the FrameAutomationPeer class to return an IlnvokeProvider instance. &lt;br /&gt; * Call the Invoke method of the IlnvokeProvider instance. &lt;br /&gt; О * Call the AddHandler method of the Rectangle class and pass a delegate as a parameter. &lt;br /&gt; * Implement the delegate to call the Begin method of the Storyboard class. &lt;br /&gt; О * Call the GetPattern method of the ButtonAutomationPeer class to return an IlnvokeProvider instance. &lt;br /&gt; * Call the Invoke method of the IlnvokeProvider instance.</content:encoded>
			<link>https://csharp.do.am/blog/demo_test_na_sertifikaciju_it/2011-12-03-13</link>
			<category>Работа с контролами Visual C# 2010</category>
			<dc:creator>AleXonis</dc:creator>
			<guid>https://csharp.do.am/blog/demo_test_na_sertifikaciju_it/2011-12-03-13</guid>
			<pubDate>Sat, 03 Dec 2011 15:04:41 GMT</pubDate>
		</item>
		<item>
			<title>Один из способов определения размеров экрана</title>
			<description>Для программы важны пропорции размеров формы и дисплея &lt;br /&gt; Поэтому очень важно знать размеры экрана &lt;br /&gt; Существует много с способов определения размеров экрана, но я хочу продемонстрировать «свой» способ определения размеров &lt;br /&gt; предположим у нас есть формочка с Label-ом на котором мы и увидим размеры экрана &lt;br /&gt; Для этого мы воспользуемся двумя свойствами нашей формы:« WindowState» и «FormBorderStyle» &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;«WindowState»&lt;/span&gt; - атрибут определяющий размеры формы относительно дисплея &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;«FormBorderStyle»&lt;/span&gt; - атрибут определяющий присутствие рамки &lt;br /&gt; поэтому мы можем перейти в Load нашей формы и написать такую вещь &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Height; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Width; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;private void&lt;/span&gt; Form1_Load(&lt;span style=&quot;color:blue&quot;&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; ...</description>
			<content:encoded>Для программы важны пропорции размеров формы и дисплея &lt;br /&gt; Поэтому очень важно знать размеры экрана &lt;br /&gt; Существует много с способов определения размеров экрана, но я хочу продемонстрировать «свой» способ определения размеров &lt;br /&gt; предположим у нас есть формочка с Label-ом на котором мы и увидим размеры экрана &lt;br /&gt; Для этого мы воспользуемся двумя свойствами нашей формы:« WindowState» и «FormBorderStyle» &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;«WindowState»&lt;/span&gt; - атрибут определяющий размеры формы относительно дисплея &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;«FormBorderStyle»&lt;/span&gt; - атрибут определяющий присутствие рамки &lt;br /&gt; поэтому мы можем перейти в Load нашей формы и написать такую вещь &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Height; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Width; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;private void&lt;/span&gt; Form1_Load(&lt;span style=&quot;color:blue&quot;&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Maximized;&lt;span style=&quot;color:green&quot;&gt;//расширяем форму на весь экран&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; Form_Height = this.Height; &lt;span style=&quot;color:green&quot;&gt;//считываем нашей размеры формы&lt;/span&gt; &lt;br /&gt; Form_Width = this.Width; &lt;br /&gt;&lt;br /&gt; label1.Text = Form_Width.ToString() +&lt;span style=&quot;color:red&quot;&gt;&quot; : &quot;&lt;/span&gt; + Form_Height.ToString();&lt;span style=&quot;color:green&quot;&gt;//выводим результаты на label1&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Normal; &lt;span style=&quot;color:green&quot;&gt;//и не забываем вернуть форму в исходное положение&lt;/span&gt; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; Теоретически, мы на окошке должны были увидеть размеры нашего экрана но получили несколько другие значения(например у моего дисплея размеры 1680 / 1050 пикселей а увидел я следующее 1688 / 1028). КАК Я ПОНЯЛ, это все потому, что мы не убрали рамку вокруг формы, поэтому её надо убрать при помощи свойства FormBorderStyle, имеющего такое значение, как None, при выборе которого рамки нашей формы становятся невидимыми, а размеры формы не изменяются (даже если окно развернуто, рамка остается, но ее видит только компьютер) &lt;br /&gt;&lt;br /&gt; Поэтому в методе Load мы пишем такую вещь: &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Height; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Width; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;private void&lt;/span&gt; Form1_Load(&lt;span style=&quot;color:blue&quot;&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Maximized;&lt;span style=&quot;color:green&quot;&gt;//расширяем форму на весь экран&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;&lt;span style=&quot;color:green&quot;&gt;//убираем рамки&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; Form_Height = this.Height; &lt;span style=&quot;color:green&quot;&gt;//считываем нашей размеры формы&lt;/span&gt; &lt;br /&gt; Form_Width = this.Width; &lt;br /&gt;&lt;br /&gt; label1.Text = Form_Width.ToString() +&lt;span style=&quot;color:red&quot;&gt;&quot; : &quot;&lt;/span&gt;+ Form_Height.ToString();&lt;span style=&quot;color:green&quot;&gt;//выводим результаты на label1&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Normal; &lt;span style=&quot;color:green&quot;&gt;//и не забываем вернуть форму в исходное положение&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;&lt;span style=&quot;color:green&quot;&gt;//возвращаем рамки&lt;/span&gt; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; При сравнении результатов полученными при выполнении двух вариантов данной программы мы видим, что ничего не изменилось &lt;br /&gt; «ПОЧЕМУ?!?»-сокрушался я и начал анализировать каждую строчку своего метода и понял, что ошибка кроется в первых двух строчках: &lt;br /&gt;&lt;br /&gt; { &lt;br /&gt; this.WindowState = FormWindowState.Maximized; &lt;br /&gt; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; поясню ошибку: вначале я распространил окошко по всему дисплею и только потом убираю рамку а нам надо наоборот, поэтому надо поменять эти две строчки местами и тогда мы получим: &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Height; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Width; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;private void&lt;/span&gt; Form1_Load(&lt;span style=&quot;color:blue&quot;&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;&lt;span style=&quot;color:green&quot;&gt;//убираем рамки&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Maximized;&lt;span style=&quot;color:green&quot;&gt;//и только потом расширяем форму на весь экран&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; Form_Height = this.Height; &lt;span style=&quot;color:green&quot;&gt;//считываем нашей размеры формы&lt;/span&gt; &lt;br /&gt; Form_Width = this.Width; &lt;br /&gt;&lt;br /&gt; label1.Text = Form_Width.ToString() +&lt;span style=&quot;color:red&quot;&gt;&quot; : &quot;&lt;/span&gt;+ Form_Height.ToString();&lt;span style=&quot;color:green&quot;&gt;//выводим результаты на label1&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Normal; &lt;span style=&quot;color:green&quot;&gt;//и не забываем вернуть форму в исходное положение&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;&lt;span style=&quot;color:green&quot;&gt;//возвращаем рамки&lt;/span&gt; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; Ура! Мы наконец-то получили правильные размеры экрана. Но для полного счастья тут же мы можем задать и размеры нашей формы относительно экрана например коэффициент будет равен 4 и можем дописать метод &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Height; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;int&lt;/span&gt; Form_Width; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;private void&lt;/span&gt; Form1_Load(&lt;span style=&quot;color:blue&quot;&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt; { &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;&lt;span style=&quot;color:green&quot;&gt;//убираем рамки&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Maximized;&lt;span style=&quot;color:green&quot;&gt;//и только потом расширяем форму на весь экран&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; Form_Height = this.Height; &lt;span style=&quot;color:green&quot;&gt;//считываем нашей размеры формы&lt;/span&gt; &lt;br /&gt; Form_Width = this.Width; &lt;br /&gt;&lt;br /&gt; label1.Text = Form_Width.ToString() +&lt;span style=&quot;color:red&quot;&gt;&quot; : &quot;&lt;/span&gt;+ Form_Height.ToString();&lt;span style=&quot;color:green&quot;&gt;//выводим результаты на label1&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.WindowState = FormWindowState.Normal; &lt;span style=&quot;color:green&quot;&gt;//и не забываем вернуть форму в исходное положение&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;&lt;span style=&quot;color:green&quot;&gt;//возвращаем рамки&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.Height = Form_Height / 4; &lt;span style=&quot;color:green&quot;&gt;//задаем ширину и высоту формы относительно размеров нашего дисплея&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;this&lt;/span&gt;.Width = Form_Width / 4; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color:red&quot;&gt;&lt;hr /&gt;&lt;/span&gt; &lt;br /&gt; Таким образом мы можем задать любые размеры для нашей формы &lt;br /&gt;&lt;br /&gt; С уважением, ваш Саф-Ил &lt;br /&gt; ___________________________________________________ &lt;br /&gt;&lt;br /&gt; Теория - это когда процесс понятен, но ничего не работает &lt;br /&gt; Практика - это когда все работает, но непонятно почему &lt;br /&gt; Но они часто совпадают, когда ничего не понятно и ничего не работает &lt;br /&gt; ___________________________________________________</content:encoded>
			<link>https://csharp.do.am/blog/odin_iz_sposobov_opredelenija_razmerov_ehkrana/2011-11-30-12</link>
			<category>Работа с контролами Visual C# 2010</category>
			<dc:creator>Саф-Ил</dc:creator>
			<guid>https://csharp.do.am/blog/odin_iz_sposobov_opredelenija_razmerov_ehkrana/2011-11-30-12</guid>
			<pubDate>Wed, 30 Nov 2011 12:57:03 GMT</pubDate>
		</item>
		<item>
			<title>Работа с реестром Windows</title>
			<description>&lt;DIV&gt;В данном примере рассматривается, как можно хранить различные данные о приложении в реестре ОС Windows.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;Теория &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;Реестр Windows или системный реестр (англ. Windows Registry) — иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows. &lt;BR&gt;Реестр содержит информацию и настройки для аппаратного обеспечения, программного обеспечения, профилей пользователей, предустановки. Большинство изменений в Панели управления, ассоциации файлов, системные политики, список установленного ПО фиксируются в реестре. &lt;BR&gt;Реестр Windows был введён для упорядочения информации, хранившейся до этого во множестве INI-файлов. Полная статья о реестре &lt;A href=&quot;http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B5%D1%81%D1%82%D1%80_Windows&quot; target=_blank&gt;здесь&lt;/A&gt;. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Основные разделы реестра операционной системы Windows&lt;/STRONG&gt;&lt;/DIV...</description>
			<content:encoded>&lt;DIV&gt;В данном примере рассматривается, как можно хранить различные данные о приложении в реестре ОС Windows.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;Теория &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;Реестр Windows или системный реестр (англ. Windows Registry) — иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows. &lt;BR&gt;Реестр содержит информацию и настройки для аппаратного обеспечения, программного обеспечения, профилей пользователей, предустановки. Большинство изменений в Панели управления, ассоциации файлов, системные политики, список установленного ПО фиксируются в реестре. &lt;BR&gt;Реестр Windows был введён для упорядочения информации, хранившейся до этого во множестве INI-файлов. Полная статья о реестре &lt;A href=&quot;http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B5%D1%81%D1%82%D1%80_Windows&quot; target=_blank&gt;здесь&lt;/A&gt;. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Основные разделы реестра операционной системы Windows&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; WIDTH: 800px; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Раздел&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Описание&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;HKEY_CLASSES_ROOT &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Содержится информация о зарегистрированных в Windows типах файлов (что и позволяет открывать их по двойному щелчку), классах и их свойствах, хранит параметры запуска программ при открытии файла с помощью проводника (связи между приложениями, типами файлов, а также информация об OLE). Является ссылкой на раздел HKEY_LOCAL_MACHINE&amp;#92;Software&amp;#92;Classes.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;HKEY_CURRENT_USER&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Содержатся настройки оболочки пользователя (например, Рабочего стола, меню &quot;Пуск&quot; и др.). Если на компьютере работает один пользователь и используется обычный вход в Windows, то значения раздела берутся из подраздела HKEY_USERS&amp;#92;.DEFAULT&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;HKEY_LOCAL_MACHINE&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Содержится информация, относящаяся к данному компьютеру для всех пользователей: драйверы, установленное программное обеспечение и его настройки.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;HKEY_USERS &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Содержит настройки оболочки Windows для всех пользователей. Именно из этого раздела информация копируется в раздел HKEY_CURRENT_USER. Все изменения в HKEY_CURRENT_USER автоматически переносятся в HKEY_USERS&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;HKEY_CURRENT_CONFIG&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Cодержится информация о конфигурации устройств Plug&amp;amp;Play, сведения о конфигурации компьютера с переменным составом аппаратных средств, сведения о настройках оборудования, используемых локальным компьютером при запуске системы (текущей конфигурации). Является ссылкой на HKEY_LOCAL_MACHINE&amp;#92;SYSTEM&amp;#92;CurrentControlSet&amp;#92;Hardware Profiles&amp;#92;Current. &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Конечным элементом дерева реестра являются ключи или параметры, среди которых можно выделить три основных типа: &lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;STRONG&gt;строковые&lt;/STRONG&gt; (например, &quot;C:&amp;#92;Program Files&quot;); &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;STRONG&gt;двоичные&lt;/STRONG&gt; (например. 06 31 B2 8C). Максимальная длина такого ключа 16Кб; &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;STRONG&gt;тип DWORD&lt;/STRONG&gt;. Этот тип ключа занимает 4 байта и отображается в шестнадцатеричном и в десятичном виде (например, 0x00000001 (1) — в скобках указано десятичное значение ключа). &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;Посмотреть и отредактировать данные реестра можно встроенной в ОС Windows утилитой Regedit.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;IMG style=&quot;BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; MARGIN: 5px; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid&quot; alt=&quot;&quot; src=&quot;https://csharp.do.am/Pics/Regedit.jpg&quot;&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;Практика &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Для начала работы создадим новый проект Windows Forms Application. Назовем его WorkWithRegistry. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Изменим свойства формы:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Свойство&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Значение&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;(Name)&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;MainForm&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Size&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;300; 138&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;StartPosition&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;CenterScreen&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Text&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Работа с реестром Windows &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;На форму MainForm добавим контролы Label, TextBox,&amp;nbsp;2 Button и изменим их свойства: &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;label1&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Свойство &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Значение&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Location&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;12; 9&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Text&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Значение для хранения в реестре&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;textBox1&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Свойство &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Значение&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;(Name)&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;textBoxDataToSave&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Location&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;15; 25&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Size&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;265; 20&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;button1&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Свойство &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Значение&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;(Name)&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;ButtonSaveData&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Location&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;60; 51&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Size&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;176; 23&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Text&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Сохранить данные в реестре&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;button2&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Свойство &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Значение&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;(Name)&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;ButtonDeleteData&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Location&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;60; 80&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Size&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;176; 23&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Text&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Удалить данные в реестре&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Основные классы для работы с реестром в .NET – &lt;STRONG&gt;Registry&lt;/STRONG&gt; и &lt;STRONG&gt;RegistryKey&lt;/STRONG&gt; , которые находятся в пространстве имён &lt;STRONG&gt;Microsoft.Win32&lt;/STRONG&gt;. &lt;/DIV&gt;
&lt;DIV&gt;Поэтому для работы с этими классами подключим пространство имен &lt;STRONG&gt;Microsoft.Win32&lt;/STRONG&gt; к нашей программе.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;IMG style=&quot;BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; MARGIN: 5px; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid&quot; alt=&quot;&quot; src=&quot;https://csharp.do.am/Pics/WorkWithRegistry_add_Microsoft_Win32.jpg&quot;&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Полные описания свойств и методов классов на MSDN: &lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;STRONG&gt;Registry&lt;/STRONG&gt; - &lt;A href=&quot;http://msdn.microsoft.com/ru-ru/library/5f1xf5kf(v=VS.100).aspx&quot; target=_blank&gt;http://msdn.microsoft.com/ru-ru/library/5f1xf5kf(v=VS.100).aspx&lt;/A&gt; &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;STRONG&gt;RegistryKey&lt;/STRONG&gt; - &lt;A href=&quot;http://msdn.microsoft.com/ru-ru/library/39sck7ta(v=VS.100).aspx&quot; target=_blank&gt;http://msdn.microsoft.com/ru-ru/library/39sck7ta(v=VS.100).aspx&lt;/A&gt; &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;Приведу только некоторые методы класса RegistryKey:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; WIDTH: 800px; BORDER-COLLAPSE: collapse; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot; cellPadding=5 align=left&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Метод &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;STRONG&gt;&lt;EM&gt;Описание &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;CreateSubKey&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Создание нового пара&lt;A href=&quot;http://msdn.microsoft.com/ru-ru/library/39sck7ta(v=VS.100).aspx&quot;&gt;&lt;/A&gt;метра реестра или открытие существующего. Название не чувствительно к регистру &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;DeleteSubKey &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Удаление существующего параметра &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;DeleteSubKeyTree &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Удаление существующего раздела и вложенных подразделов &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;DeleteValue &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Удаление значения существующего параметра &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;OpenSubKey &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Получение значения параметра только для чтения &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;SetValue &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Установка значения &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;GetValue &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Получение значения параметра &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Close &lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; VERTICAL-ALIGN: top; BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;Закрытие параметра и запись его содержимого на постоянной основе &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Во всем реестре нас интересует только раздел HKEY_CURRENT_USER, являющийся ссылкой, линком на определенный подраздел HKEY_USERS. В нем, в подразделе Software хранится вся информация об установленных программах и их данные. Этот подраздел и предназначен для использования в интересах прикладных программ. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Для упрощения работы создадим&amp;nbsp;3 метода в классе MainForm.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;SPAN style=&quot;COLOR: #6b8e23&quot;&gt;
&lt;DIV&gt;&lt;BR&gt;//&lt;SPAN style=&quot;COLOR: #000000; FONT-SIZE: 10pt&quot;&gt;&lt;STRONG&gt;RegistrySet &lt;/STRONG&gt;&lt;/SPAN&gt;- функция для добавления данных в реестр. Если ветки реестра не существует - она создается.&lt;BR&gt;//Для универсализации мы все значения ключей передаем в виде строки. Не забываем приводить к нужному типу при использовании! &lt;BR&gt;//Section - название нашего раздела в ветке HKEY_CURRENT_USER&amp;#92;Software&amp;#92; &lt;BR&gt;//Key - название ключа в разделе &lt;BR&gt;//KeyValue - значение ключа &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;private void RegistrySet(string Section, string Key, string KeyValue) &lt;BR&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Путь к ключу в реестре &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;string RegistryPath; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Формируем путь к нашему разделу &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistryPath = &quot;Software&amp;#92;&amp;#92;&quot; + Section; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Переменная для работы с реестром &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistryKey MyRegistryKey; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Проверяем есть ли наш раздел &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp; try &lt;BR&gt;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey = Registry.CurrentUser.OpenSubKey(RegistryPath); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MyRegistryKey == null) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Раздела нет - создаем и открываем для чтения и добавления &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey = Registry.CurrentUser.CreateSubKey(RegistryPath); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Открываем на запись в существующий &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey = Registry.CurrentUser.OpenSubKey(RegistryPath, true); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Пробуем записать значения ключей &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;MyRegistryKey.SetValue(Key, KeyValue); &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Выведем сообщение об успехе &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;MessageBox.Show(&quot;Параметры сохранены.&quot;); &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Сохраняем значения в реестре &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey.Close(); &lt;BR&gt;&amp;nbsp; } &lt;BR&gt;&amp;nbsp; catch (System.Exception err) &lt;BR&gt;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Если есть ошибки, то выводим сообщение с описанием этой ошибки &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&quot;Произошла ошибка при работе с реестром : &quot; + err.Message); &lt;BR&gt;&amp;nbsp; } &lt;BR&gt;} &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&lt;/SPAN&gt;//&lt;SPAN style=&quot;COLOR: #000000; FONT-SIZE: 10pt&quot;&gt;&lt;STRONG&gt;RegistryGet &lt;/STRONG&gt;&lt;/SPAN&gt;- функция для чтения данных из реестра. Если ветки реестра и ключей не существует - они создаются. &lt;BR&gt;//Для универсализации мы все значения ключей передаем в виде строки. Не забываем приводить к нужному типу при использовании! &lt;BR&gt;//Section - название нашего раздела в ветке HKEY_CURRENT_USER&amp;#92;Software&amp;#92; &lt;BR&gt;//Key - название ключа в разделе &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;private string RegistryGet(string Section, string Key) &lt;BR&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Путь к ключу в реестре &lt;BR&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;string RegistryPath; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Переменная для хранения значения ключа &lt;BR&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;string KeyValue = &quot;&quot;; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Переменная для работы с реестром &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistryKey MyRegistryKey;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp; //Формируем путь к нашему разделу &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistryPath = &quot;Software&amp;#92;&amp;#92;&quot; + Section; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Проверяем есть ли наш раздел &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp; try &lt;BR&gt;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey = Registry.CurrentUser.OpenSubKey(RegistryPath, true); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MyRegistryKey == null) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Раздела нет - создаем &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey = Registry.CurrentUser.CreateSubKey(RegistryPath); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Считываем данные ключа &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;KeyValue = (string) MyRegistryKey.GetValue(Key); &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Если ключ не существует - создаем &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (KeyValue == null) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey.SetValue(Key, &quot;&quot;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Выведем сообщение об успехе &lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;MessageBox.Show(&quot;Параметры загружены.&quot;); &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Сохраняем значения в реестре &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey.Close(); &lt;BR&gt;&amp;nbsp; } &lt;BR&gt;&amp;nbsp; catch (System.Exception err) &lt;BR&gt;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Если есть ошибки, то выводим сообщение с описанием этой ошибки &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&quot;Произошла ошибка при работе с реестром : &quot; + err.Message);&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Возвращаем полученное значение&amp;nbsp;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp; return KeyValue; &lt;BR&gt;} &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;//&lt;SPAN style=&quot;COLOR: #000000; FONT-SIZE: 10pt&quot;&gt;&lt;STRONG&gt;RegistryDelete &lt;/STRONG&gt;&lt;/SPAN&gt;- функция для удаления данных из реестра &lt;BR&gt;//Внимание! Удаляет все данные из раздела Section, включая все ключи и подразделы&lt;BR&gt;//Section - название раздела в ветке HKEY_CURRENT_USER&amp;#92;Software&amp;#92; &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;private void RegistryDelete(string Section) &lt;BR&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Путь к разделу в реестре &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;string RegistryPath; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Переменная для работы с реестром &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistryKey MyRegistryKey; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Формируем путь к нашему разделу &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistryPath = &quot;Software&amp;#92;&amp;#92;&quot; + Section; &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Проверяем есть ли наш раздел &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp; try &lt;BR&gt;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey = Registry.CurrentUser.OpenSubKey(RegistryPath, true); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MyRegistryKey != null) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Удаляем все данные в корне раздела &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (string valueName in MyRegistryKey.GetValueNames()) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey.DeleteValue(valueName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Если подраздел существует, то удаляем все данные во всех вложенных подразделах &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (string subKeyName in MyRegistryKey.GetSubKeyNames()) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (RegistryKey tempKey = MyRegistryKey.OpenSubKey(subKeyName)) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (string valueName in tempKey.GetValueNames())&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempKey.DeleteValue(valueName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Удаляем раздел и все вложенные подразделы &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;Registry.CurrentUser.DeleteSubKeyTree(RegistryPath); &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Выведем сообщение об успехе &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&quot;Параметры удалены.&quot;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Сохраняем значения в реестре &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyRegistryKey.Close(); &lt;BR&gt;&amp;nbsp; } &lt;BR&gt;&amp;nbsp; catch (System.Exception err) &lt;BR&gt;&amp;nbsp; { &lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Если есть ошибки, то выводим сообщение с описанием этой ошибки &lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&quot;Произошла ошибка при работе с реестром : &quot; + err.Message); &lt;BR&gt;&amp;nbsp; } &lt;BR&gt;}&lt;/SPAN&gt; &lt;BR&gt;　 &lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;В обработчик нажатия первой кнопки поместим следующий код для записи данных в реестр: &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: #000000&quot;&gt;private void ButtonSaveData_Click(object sender, EventArgs e) &lt;BR&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; //Записываем данные в ключ реестра HKEY_CURRENT_USER&amp;#92;Software&amp;#92;MySoft&amp;#92;SavedData &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #000000&quot;&gt;RegistrySet(&quot;MySoft&quot;, &quot;SavedData&quot;, textBoxDataToSave.Text); &lt;BR&gt;} &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;&lt;/SPAN&gt;В обработчик нажатия второй кнопки поместим следующий код для удаления данных из реестра: &lt;BR&gt;&lt;BR&gt;private void ButtonDeleteData_Click(object sender, EventArgs e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #6b8e23&quot;&gt;//Удаляем данные из реестра &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; RegistryDelete(&quot;MySoft&quot;); &lt;BR&gt;} &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;В обработчик события FormLoad для формы MainForm поместим следующий код для чтения данных из реестра:&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;private void MainForm_Load(object sender, EventArgs e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #6b8e23&quot;&gt;//Считываем данные из ключа реестра HKEY_CURRENT_USER&amp;#92;Software&amp;#92;MySoft&amp;#92;SavedData &lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp; textBoxDataToSave.Text = RegistryGet(&quot;MySoft&quot;, &quot;SavedData&quot;); &lt;BR&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;В результате получаем программу, которая записывает в реест данные&amp;nbsp;из TextBox&apos;а по нажатию первой кнопки, удаляет их из реестра по нажатию второй кнопки&amp;nbsp;и считывает их из реестра при запуске.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;IMG style=&quot;BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; MARGIN: 5px; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid&quot; alt=&quot;&quot; src=&quot;https://csharp.do.am/Pics/WorkWithRegistry_screenshot.jpg&quot;&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Исходник проекта находится &lt;A href=&quot;http://csharp.do.am/load/0-0-0-6-20&quot; target=_blank&gt;здесь&lt;/A&gt;. &lt;/DIV&gt;
&lt;DIV&gt;Обсудить проект можно &lt;A href=&quot;http://csharp.do.am/forum/5-5-1&quot; target=_blank&gt;здесь&lt;/A&gt;.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;Источники&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Библиотека MSDN - &lt;A href=&quot;http://msdn.microsoft.com/ru-ru/&quot; target=_blank&gt;http://msdn.microsoft.com/ru-ru/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Википедия - &lt;A href=&quot;http://ru.wikipedia.org&quot; target=_blank&gt;http://ru.wikipedia.org&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Форум программистов Vingrad - &lt;A href=&quot;http://forum.vingrad.ru&quot; target=_blank&gt;http://forum.vingrad.ru&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Национальный Открытый Университет «ИНТУИТ» - &lt;A href=&quot;http://www.intuit.ru&quot; target=_blank&gt;http://www.intuit.ru&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Сайт Влада - &lt;A href=&quot;http://wladm.narod.ru&quot; target=_blank&gt;http://wladm.narod.ru&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Мозг и прямые руки - &lt;A href=&quot;http://intellect.pro/&quot; target=_blank&gt;Я&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</content:encoded>
			<link>https://csharp.do.am/blog/rabota_s_reestrom_windows/2011-11-26-10</link>
			<category>Работа с классами .Net Framework 4.0</category>
			<dc:creator>Alsodan</dc:creator>
			<guid>https://csharp.do.am/blog/rabota_s_reestrom_windows/2011-11-26-10</guid>
			<pubDate>Sat, 26 Nov 2011 12:26:06 GMT</pubDate>
		</item>
	</channel>
</rss>