sergey vasin

The IT blog

Используем класс .NET Framework для открытия диалогового окна – Hey, Scripting Guy! Blog

leave a comment »

Резюме: Microsoft PFE Adam Haynes и Shubert Somer рассказывают об использовании класса .NET Framework для открытия диалогового окна.

Microsoft Scripting Guy Ed Wilson на связи. Сегодня я публикую пятую, завершающую, часть из серии статей, написанных Adam Haynes с некоторой помощью его друга Shubert Somer. Перед прочтением данной статьи рекомендуется ознакомиться с частью 1, частью 2, частью 3 и частью 4.

Итак, Адам.

[reflection.assembly]::loadwithpartialname(«System.Windows.Forms») | Out-Null

$openFile = New-Object System.Windows.Forms.OpenFileDialog

$openFile.Filter = «txt files (.txt)|.txt|All files (.)|.»

If($openFile.ShowDialog() -eq «OK»

{get-content $openFile.FileName}

01

Я полагаю, что Шуберт подробно объяснил первую строку скрипта, так что мы можем двигаться дальше.

02

В строке 3 мы используем командлет New-Object поскольку, как мы говорили в предыдущих статьях, нам нужно создать экземпляр объекта класса OpenFileDialog. Чтобы освежить в памяти информацию о конструкторах, можете перечитать объяснения Шуберта в части 2.

Строка 4 фактически скопирована с сайта MSDN. Я пытался разобраться со свойством Filter и натолкнулся на страницу с примером его использования.

03

Для того, чтобы написать строку 6 мне понадобилось несколько попыток, пока я не разобрался с объектом (как вы помните – это объект, поскольку мы использовали командлет New-Object). После того, как я получил объект класса OpenFileDialog, я стал пробовать методы, представленные на MSDN (а также полученные посредством командлета Get-Member), чтобы узнать, что они делают. Метод ShowDialog() показался мне довольно многообещающим и фактически именно он и был мне нужен.

Метод ShowDialog() возвращает одно из значений перечислителя DialogResult, которое может быть равным OK, либо Cancel. Помните, мы говорили о перечислителях в части 3? И как же я узнал, что возвращается именно значение перечислителя? Потому что так написано на MSDN. Здесь присутствует некий побочный эффект в виде того, что перед тем как нажать OK, вам придется выбрать файл, что дает нам некоторое преимущество в части верификации ввода. После того как пользователь выберет файл и нажмет OK, мы фактически передаем путь к файлу командлету Get-Content в строке 8. Я не думаю, что имеет смысл использовать .NET Framework для чтения файла, когда для этого есть командлет.

04

Стоит также заметить, что в строке 6 мы вполне могли заменить [System.Windows.Forms.DialogResult]::OK на OK, и Windows PowerShell все равно понял бы, что мы хотим, однако таким образом мы бы упустили возможность освежить в памяти информацию о перечислителях.

Я надаюсь что к этому моменту вы уже обладаете некой целостной картиной и это побудит вас иногда заглядывать на MSDN пробовать нечто из приведенного в этой серии статей. Прелесть использования .NET Framework в Windows PowerShell состоит в том, что для этого вам не требуется каких-то особых знаний о программировании или навыков использования Visual Studio. Как Шуберт сказал в предыдущем посте, одно и то же можно сделать несколькими способами. Что ж, если определенный способ вам подходит, значит это правильный способ.

Теперь, когда вы обладаете некоторыми знаниями, мы рекомендуем вам заглянуть в .NET Framework Class Library. Для начала, выберите знакомое вам пространство имен. Например я знаю Active Directory, поэтому это то, откуда я начал знакомство с .NET. Если вы хорошо разбираетесь в Exchange или SharePoint, начните с этих технологий. Выберите что угодно, вне зависимости от того, пригодится ли это вам прямой сейчас или нет, и попробуйте с ним поработать. Просто начните разбираться во всеми методами и свойствами вашего нового объекта.

Вы когда-нибудь разговаривали с PowerShell? Я использую это, когда мне становится скучно.

[reflection.assembly]::loadwithpartialname(«System.Speech») | Out-Null

$SayIt = New-Object system.Speech.Synthesis.SpeechSynthesizer

$SayIt.Speak(«.Net and PowerShell are cooler than cool»)

05

Попробуйте разобраться в этом скрипте самостоятельно, используя все то, о чем мы здесь говорили, затем загляните на MSDN, чтобы узнать, как вы можете сменить голос, пол или возраст. Основная идея в том, чтобы делать что-то, не обязательно важное, и получать от этого удовольствие. Когда от вас потребуется, вы сможете показать ваши навыки и умения вашему руководству. Скажите, что вас послал Microsoft Premier.

~Adam.

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/22/use-a-net-framework-object-to-open-a-file-dialog-box.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Март 10, 2013 в 13:52

Опубликовано в HeyScriptingGuyBlog, PowerShell

Tagged with ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s