<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Заметки о Windows, Exchange, и о всем остальном : Разработка</title><link>http://blogs.technet.com/vitalipro/archive/tags/_2004300437044004300431043E0442043A043004_/default.aspx</link><description>Tags: Разработка</description><dc:language>ru-RU</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Минимализм для Windows Media Player</title><link>http://blogs.technet.com/vitalipro/archive/2007/03/16/696707.aspx</link><pubDate>Fri, 16 Mar 2007 17:15:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:696707</guid><dc:creator>vitalipro</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/vitalipro/comments/696707.aspx</comments><wfw:commentRss>http://blogs.technet.com/vitalipro/commentrss.aspx?PostID=696707</wfw:commentRss><description>&lt;P&gt;В Windows Media Player уже давно существует возможность настроить, то как выглядит плейер, определив skin. Как определять skin можно прочитать здесь: &lt;A href="http://msdn2.microsoft.com/en-us/library/aa393417.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa393417.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa393417.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;На интернете можно найти много различных skin. Но мне не одна не подходила. Мне хотелось, чтобы плейер занимал минимум места на экране поскольку он у меня открыт практически все время.&lt;/P&gt;
&lt;P&gt;Поэтому я написал свой простенький skin для Windows Media Player (см. Attachement ниже). Может кому-то еще он понравится.&lt;/P&gt;
&lt;P&gt;Кстати, .wmz (Windows Media Player Skin Definition) файл не что иное как переименнованный zip-файл. Так что, чтобы посмотреть исходники для этой skin переименуйте файл в .zip и откройте его. Там 2 файла. Один -&amp;nbsp;XML, который определяет визуальные элементы, второй - JScript, который определяет обработчики различных событий.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=696707" width="1" height="1"&gt;</description><enclosure url="http://www.vitphoto.com/Minimal.wmz" length="2458" type="application/x-ms-wmz" /><category domain="http://blogs.technet.com/vitalipro/archive/tags/_2004300437043D043E043504_/default.aspx">Разное</category><category domain="http://blogs.technet.com/vitalipro/archive/tags/_2004300437044004300431043E0442043A043004_/default.aspx">Разработка</category></item><item><title>Почему столько головной боли из-за перехода на летнее время на 2 недели раньше</title><link>http://blogs.technet.com/vitalipro/archive/2007/03/12/690768.aspx</link><pubDate>Tue, 13 Mar 2007 05:05:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:690768</guid><dc:creator>vitalipro</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/vitalipro/comments/690768.aspx</comments><wfw:commentRss>http://blogs.technet.com/vitalipro/commentrss.aspx?PostID=690768</wfw:commentRss><description>&lt;P&gt;Как известно в США и в нескольких других странах решили перейти на летнее время на две недели раньше в этом году.&lt;/P&gt;
&lt;P&gt;Казалось бы даты и времена в большинстве современного программного обеспечения хранятся в UTC и это вроде как гарантирует, что независимо от временной зоны, летнего или зимнего времени это событие произойдет в одно и то же время. Но проблема в том, что люди не пользуются UTC, люди пользуются локальным временем. Самолет улетает в 10 часов утра - значит самолет улетает в 10 часов утра локального времени. И когда переводят часы на час вперед, самолет по прежнему вылетает в 10 часов локального времени, но это уже будет другой UTC. Сохраненное в UTC время сложно подправить, потому что неизвестно&amp;nbsp;было ли оно посчитано с учетом перехода на летнее время или нет.&lt;/P&gt;
&lt;P&gt;Вот небольшая программка на C#,&amp;nbsp;которая демонстрирует проблему:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DateTime dateTime = new DateTime(2007, 03, 12, 14, 0, 0);&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; Console.WriteLine("Before conversion: {0}", dateTime.TimeOfDay);&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; dateTime = dateTime.AddDays(-10).ToUniversalTime().AddDays(10).ToLocalTime();&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; Console.WriteLine("After conversion:&amp;nbsp; {0}", dateTime.TimeOfDay);&lt;/P&gt;
&lt;P&gt;Программку надо запускать в тихоокеанской временной зоне. В другой временной зоне надо установить начальную дату на следующий день за днем перехода на летнее время.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=690768" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/vitalipro/archive/tags/_2004300437044004300431043E0442043A043004_/default.aspx">Разработка</category></item><item><title>Приоритезация ввода-вывода в Windows Vista</title><link>http://blogs.technet.com/vitalipro/archive/2007/02/16/645675.aspx</link><pubDate>Sat, 17 Feb 2007 04:28:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:645675</guid><dc:creator>vitalipro</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/vitalipro/comments/645675.aspx</comments><wfw:commentRss>http://blogs.technet.com/vitalipro/commentrss.aspx?PostID=645675</wfw:commentRss><description>&lt;P&gt;Одно из новшеств в Windows Vista - это возможность установить приоритет ввода-вывода для процесса.&lt;/P&gt;
&lt;P&gt;С приоритетами процессов все уже наверное знакомы. Также наверное уже знаете на своем опыте, что если процесс с самым низким приоритетом активно работает с диском, то он тормозит всё, насмотря на то, что у него самый низкий приоритет. Это потому что ввод-вывод выполняется с одним и тем же приоритетом для всех процессов.&lt;/P&gt;
&lt;P&gt;В Windows Vista добавили приоритезацию ввода вывода, дабы избежать ситуаций, когда фоновый процесс тормозит всё, когда работает с диском.&lt;/P&gt;
&lt;P&gt;В ближайшем будущем от этого было бы мало пользы, поскольку нет программ, которые бы это использовали, кроме тех, конечно, что включены в Windows Vista. Но оказалось, что можно любую программу работать с низким приоритетом ввода-вывода с помощью ключей в реестре. Заодно установим и низкий приоритет процесса.&lt;/P&gt;
&lt;P&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\&amp;lt;имя выполняемого файла&amp;gt;\PerfOptions]&lt;BR&gt;"CpuPriorityClass"=dword:00000001&lt;BR&gt;"IoPriority"=dword:00000000&lt;/P&gt;
&lt;P&gt;Кстати заодно можно установить еще и следующие значения, чтобы уж совсем загнать малонужный процесс в угол:&lt;/P&gt;
&lt;P&gt;"PagePriority"=dword:00000001&lt;BR&gt;"WorkingSetLimitInKB"=dword:00008000&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=645675" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/vitalipro/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.technet.com/vitalipro/archive/tags/_2004300437044004300431043E0442043A043004_/default.aspx">Разработка</category><category domain="http://blogs.technet.com/vitalipro/archive/tags/_1E043F04420438043C04380437043004460438044F04_/default.aspx">Оптимизация</category></item><item><title>SHFileOperation и FOF_NOERRORUI </title><link>http://blogs.technet.com/vitalipro/archive/2007/02/16/645627.aspx</link><pubDate>Sat, 17 Feb 2007 03:31:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:645627</guid><dc:creator>vitalipro</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/vitalipro/comments/645627.aspx</comments><wfw:commentRss>http://blogs.technet.com/vitalipro/commentrss.aspx?PostID=645627</wfw:commentRss><description>&lt;P&gt;Вот решил добавить новый раздел "Разработка", где буду публиковать свои находки как разработчика, что-то чего невозможно найти на MSDN, решения проблем, на которые натыкаюсь.&lt;/P&gt;
&lt;P&gt;И вот первая такая находка.&lt;/P&gt;
&lt;P&gt;Есть такая функция SHFileOperation, которая выполняет какую-то операции (копирование, удаление и т.п.) для многих файлов при этом показывает окошко с индикатором выполнение. Если же пользователь отменяет операцию, то устанавливается флаг fAnyOperationsAborted в структуре SHFILEOPSTRUCT. Если произойдет ошибка при выполнении операции, то пользователю предоставится возможность либо прекратить операцию, либо попробовать снова. Если пользователь выберет прекратить, то очевидно установится fAnyOperationsAborted. При этом функция вернет 0 (функция завершилась успешно).&lt;/P&gt;
&lt;P&gt;Эту информацию вы можете найти и на MSDN. Чего вы не найдете на MSDN так это того, что если функции SHFileOperation передан флаг FOF_NOERRORUI (т.е. не показывать пользователю сообщений об ошибках), то если произойдет ошибка и операция будет прервана, то fAnyOperationsAborted установлен не будет. Вместо этого функция вернет код ошибки, которая произошла.&lt;/P&gt;
&lt;P&gt;Таким образом правильно проверять закончилась ли операция успешно надо так:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;SHFILEOPSTRUCT shop;&lt;/P&gt;
&lt;P&gt;// заполнить shop&lt;/P&gt;
&lt;P&gt;int status = SHFileOperation(&amp;amp;shop);&lt;BR&gt;if (status == 0 &amp;amp;&amp;amp; !shop.fAnyOperationsAborted)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // операция успешно завершена&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=645627" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/vitalipro/archive/tags/_2004300437044004300431043E0442043A043004_/default.aspx">Разработка</category></item></channel></rss>