Tuesday, November 11, 2008

Microsoft Expression Blend2 SP1 もとっくにダウンロード可能だったんですね.....

知りませんでした。

ということで、ダウンロードしてインストールしてみました。

1)ダウンロードしてきた実行ファイル(BlendV2SP1_ja.exe)をダブルクリックして実行

2)ライセンス条項を読んで[同意する]をクリック(もちろん同意する場合)

3)あとはインストールが完了するのを待つだけ

 

Blend2 SP1では「Silverlight2 アプリケーション」がサポートされていますので、Silverlight2アプリを開発する方はインストールしましょう。

 

Tuesday, November 11, 2008 8:48:37 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback

Visual Studio 2008 SP1用 Silverlight Tools をダウンロードしてインストールが完了したので記録として残しておきます。

1)ダウンロードしてきたファイル(Silverlight_Tools.exe)を実行

2)[次へ]ボタンをクリック

3)ライセンス条項を読んで[同意]するにチェックをして[次へ]をクリック

4)あとはひたすら待つのみ。

5)[完了]をクリックして終了。

 

インストール完了後、プロジェクトの種類で「Silverlight」を選択でき、

  • Silverlightアプリケーション
  • Silverlightクラスライブラリ

の開発が可能となります。

下図に示すようにVB.NETかC#での開発が可能ですので、お好きな方でどうぞ。

Tuesday, November 11, 2008 8:20:42 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback

Visual Studio 2008 SP1用 Silverlight Tools ダウンロード可能になっていたんですね。

これでSilverlight 2 用アプリケーションを Visual Studio 2008 上で開発ができますね。

さっそくダウンロードして試さなくては!!

Tuesday, November 11, 2008 7:46:50 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Saturday, November 08, 2008

WindowsアプリケーションのフォームにはAcceptButtonとCancelButtonというプロパティがあります。

AcceptButton:フォームの[承諾]ボタンです。このプロパティを設定すると[Enter]が押されるたびに、ボタンがクリックされる。

CancelButton:フォームの[キャンセル]ボタンです。このプロパティを設定すると[Esc]が押されるたびに、ボタンがクリックされる。

WPFにおいてWindowsフォームに対応するものはWindowですが、AcceptButtonプロパティとCancelButtonを備えていません。

Windowsフォームのように[承諾]ボタンと[キャンセル]ボタンを実現するには、ButtonコントロールのIsDefaultやIsCancelプロパティを使用します。

IsDefaultプロパティ:プロパティウィンドウでこの項目にチェックを付けるかコードでtrueをセットすると、[Enter]キーが押されるたびにクリックされるようになります。

IsCancelプロパティ:プロパティウィンドウでこの項目にチェックを付けるかコードでtrueをセットすると、[Esc]キーが押されるたびにクリックされるようになります。

このプロパティは排他制御がされていないため、1つのボタンで[承諾]も[キャンセル]も行えるボタンを作成できてしまいます。またWindowsアプリケーションとは異なり、[承諾]と[キャンセル]を意味するプロパティがボタン自身が持つことにより、複数のボタンに[承諾]や[キャンセル]を割り当てることが出来てしまいます。

下記のようにボタンを2つ、テキストボックスを1つ配置して挙動を確かめてみます。

実験方法
フォーカスをテキストボックスに置いた状態で、[Enter]または[Esc]を押す。
(これはフォーカスがButton1 or Button2にある状態で[Enter]や[Esc]を押すのを防ぐためです)


1)Button1のIsDefaultとIsCancelにTrueをセット。Button2はIsDefault,IsCancelともにFalseをセット。
  [Enter]を押しても[Esc]を押しても、Button1のクリックイベントが発生。

2)Button1およびButton2の両方のIsDefaultにTrueをセット
 [Enter]を押すとButton1にフォーカスが当たるだけで、クリックイベントは発生しなかった。

3)Button1およびButton2の両方のIsCancelにTrueをセット
 [Esc]を押すとButton1にフォーカスが当たるだけで、クリックイベントは発生しなかった。

4)Button1のIsDefaultにTrue,IsCancelにFalse、Button2のIsDefaultにFalse,IsCancelにTrueをセット
[Enter]を押すとButton1のクリックイベントが発生。
[Esc]を押すとButton2のクリックイベントが発生。

まとめ
上記実験結果から、IsDefaultおよびIsCancelは
・1つのボタンに同時にセットしてはいけない
・複数のボタンに同一プロパティを設定してはいけないし
ということになります。

IsDefaultおよびIsCancelは組み合わせによっては正常に動作しないこともあるので注意が必要です。
なぜ、Windowsフォームのようにしなかったのか疑問ですね

WPF
Saturday, November 08, 2008 9:34:53 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Friday, November 07, 2008

WPFのButtonコントロールはClickModeプロパティを使用して、Clickイベントの発生タイミングを変更することが可能です。

ClickModeで指定可能な値はRelease, Press, Hoverがあります。規定値はReleaseです。

それぞれの動作は下記の通りです。


Release
ボタンを押して離したときにClickイベントが発生します。
Press
ボタンを押すとすぐにClickイベントが発生します。
Hover
マウスをコントロールの上に置いたときに Click イベントが発生します。

 

下図のようにボタンを3つ配置して、それぞれのClickModeを割り当てて実験してみました。

 

ClickMode設定後のXAMLは下記の通りです。

<Button Height="23" HorizontalAlignment="Left" 
        Margin="12,12,0,0" Name="Button1" 
        VerticalAlignment="Top" Width="75" ClickMode="Release">Button1</Button>
<Button Height="23" HorizontalAlignment="Left" 
        Margin="12,41,0,0" Name="Button2" 
        VerticalAlignment="Top" Width="75" ClickMode="Press">Button2</Button>
<Button Height="23" HorizontalAlignment="Left" 
        Margin="13,70,0,0" Name="Button3" 
        VerticalAlignment="Top" Width="75" ClickMode="Hover">Button3</Button>

VB.NETのソースコードは下記の通り

Partial Public Class Window1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
        MessageBox.Show("ClickMode:" + Button1.ClickMode.ToString())
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
        MessageBox.Show("ClickMode:" + Button2.ClickMode.ToString())
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click
        MessageBox.Show("ClickMode:" + Button3.ClickMode.ToString())
    End Sub

End Class


上記を実行すると、ボタンクリック時にクリックされたボタンのClickModeをメッセージボックスに表示します。

それぞれのイベントが発生するタイミングを是非体感してみてください。

ちなみに、従来のWindowsアプリケーションではクリックの動作はReleaseが該当します。

PressやHoverは慣れないと違和感を覚えますね。


 

WPF | 入門
Friday, November 07, 2008 10:35:39 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Tuesday, November 04, 2008

Windowsアプリケーションでは、文字列の表示は各コントロールが備えているTextプロパティを使用するのがほとんどです。

たとえば

Formのタイトル、Buttonコントロールの表面に表示する文字列、Labelに表示する文字列など。

しかしWPFアプリケーションでは、コントロール毎に文字列を表示するプロパティ名称が異なります。 

必ずしもTextプロパティというわけではなく、Title,Content,Text, Headerといったプロパティが使用されます。

ということで、覚え書きとして下記に示しておきます。(すべてのコントロールについて書いたものではありません)

Windowsコントロール WPFコントロール 対応するWPFのプロパティ
Form Window Title
Button Button Content
Label Label Content
CheckBox CheckBox Content
ComboBox ComboBox Text
GroupBox GroupBox Header
ToolStripMenuItem MenuItem Header
RadioButton RadioButton Content
ToolStripStatusLabel StatusBarItem Content
TabPage TabItem Header
TextBox TextBox Text
WPF
Tuesday, November 04, 2008 10:23:48 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Sunday, November 02, 2008

10月末に株式会社オライリージャパン様より、PowerShell from Japan!! メンバーへ「Windows PowerShell クックブック」を献本していただきました。

本書は630ページというボリュームのため、すべてを読み切ってはいないのですが、感想を書きたいと思います。

なんといっても、この本の特徴は使用例の豊富さとわかりやすい解説にあるといえるでしょう 。

どのようなプログラミング言語でもはじめて学ぶには、何かしらのドキュメントを読むことになるかと思います。

そのようなとき、文章だけでだらだらと説明されてもどのように使用して良いのかは読み取ることができないものです。

本書は、その豊富な例題により、どのように使用すべきかをわかりやすい文章とともに掲載してあります。

また、使用例の中には実務ですぐに使えそうなサンプルコード、効果的なテクニックなど惜しむことなく掲載されています。

使用例もすばらしいのですが、個人的には巻末の付録もすごく好きです。

付録では、変数の使い方等の基本的な事項から、.NET Framework、ComObjectの使用方法、正規表現に至るまで、「かゆいところに手が届く」という言葉がふさわしい本となっております。

PowerShellをこれから学ぼうとしている方も、体得してしまった方も、是非バイブルとして手元に置いていただきたい1冊です。

書籍情報

タイトル:Windows PowerShell クックブック

著者:Lee Holmes(リー・ホームズ)

監訳者:マイクロソフト株式会社 ITプロエバンジェリストチーム

翻訳:菅野良二(かんのりょうじ)

ISBN:978-4-87311-382-1

本体価格:4,000円

判形:B5版

ページ数:630

発行:2008年10月発行

Web: http://www.oreilly.co.jp/books/9784873113821/

Sunday, November 02, 2008 12:45:51 AM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Wednesday, October 15, 2008
Tuesday, October 14, 2008
コマンドレット名


Get-Content

エイリアス


gc
cat
type


説明


-path または -literalPath パラメータに指定した項目の内容を読み取ります。
一度に1行の内容を読み込み、それぞれの行オブジェクトを返します。

書式


Get-Content [-path] <string[]>または[-literalPath] <string[]> [-totalCount] <long[]> [-readCount] <long[]> [-include <string[]>] [-exclude <string[]>] [-filter <string>] [-force] [-credential <PSCredential>] [-encoding] { <Unknown> | <String> | <Unicode> <Byte> | <BigEndianUnicode> <UTF8> | <UTF7> | <Ascii> |} [<CommonParameters>]

パラメータ
-path <string[]>


読み込みを行う項目のパスを指定します。パスにはワイルドカードを指定することができます。またカンマで区切ることで複数の項目を1度に読み込むことができます。


各サンプルで使用しているファイルは「サンプルで使用するテキストファイル」を参照ください


–––––––––– -Path パラメータの使用例1 ––––––––––


PS > PS C:\Work> Get-Content -Path "Test1.txt"
ABC
DEF
GHI


このコマンドを実行すると Test1.txt の内容を読み込んで表示します。


–––––––––– -Path パラメータの使用例2 ––––––––––


PS > PS C:\Work> Get-Content -Path "Test1.txt","Test2.txt"
ABC
DEF
GHI
JKL


このコマンドを実行すると Test1.txt と Test2.txt の内容を読み込んで表示します。
このように複数のファイルを一度に読み込んだ場合にはファイルの内容が連結された状態で表示されますので、どこまでがどのファイルの内容なのかを判断することはできませんので注意が必要です。


–––––––––– -Path パラメータの使用例3 ––––––––––


PS C:\Work> Get-Content -Path "Test*.txt"
ABC
DEF
GHI
JKL
ABC
DEF
GHI
SAMPLE1


このコマンドを実行すると、C:\Work内にある ファイル名の先頭が "Test" 拡張子が "txt"のファイルすべてを読み込んで表示します。
ただし、-Pathパラメータはエスケープ文字を含むファイルを取り扱うことはできないため、"Test`t.txt" のようなフィル名のデータは読み込むことができません。この場合は-literalPathパラメータを使用します。
この例では C:\Work 内に Test1.txt, Test2.txt, Test`t.txt, Test[1].txt のファイルを準備して実行したのですが"Test1.txt"のファイルが2度読み込まれるという現象が発生しています。
これは、フォルダ内に Test[1].txt というファイルが存在するため、このファイル名が-Pathパラメータに渡されたのが原因です。このことからワイルドカードを使用した読み込みには注意が必要です。


–––––––––– -Path パラメータの使用例4 ––––––––––


PS > PS C:\Work> Get-Content -Path "Test[1].txt"
ABC
DEF
GHI


このコマンドを実行すると Test1.txt の内容を読み込んで表示します。これは"Test[1].txt"の"[]"がワイルドカードとして認識されたためです。
ファイル名が"Test[1].txt"というファイルの読み込みを行う場合は-literalPath パラメータを使用します。


–––––––––– -Path パラメータの使用例5 ––––––––––


PS C:\Work> Get-Content -Path 'Test`t.txt'
SAMPLE1


このコマンドを実行すると、エスケープ文字列を含むファイル"Test`t.txt"の内容を読み込んで表示します。
エスケープ文字列を含むファイルを読み込む場合は、指定するパスを一重引用符で括る必要がありますので注意してください。(二重引用符で括った場合はエラーとなります)


-literalPath <string[]>


読み込みを行う項目のパスを指定します。-Pathパラメータと違ってパスにはワイルドカードを指定することができません。その代わり、
エスケープ文字を含むパスを指定することが可能です。エスケープ文字を含むパスを指定する場合は -literalPath パラメータを使用します。(PowerShellでは`(アクサングラーブ文字)がエスケープ文字として扱われます。)


–––––––––– -literalPath パラメータの使用例1 ––––––––––


PS > PS C:\Work> Get-Content -literalPath "Test1.txt"
ABC
DEF
GHI


このコマンドを実行すると Test1.txt の内容を読み込んで表示します。


–––––––––– -literalPath パラメータの使用例2 ––––––––––


PS > PS C:\Work> Get-Content -literalPath "Test1.txt","Test2.txt"
ABC
DEF
GHI
JKL


このコマンドを実行すると Test1.txt と Test2.txt の内容を読み込んで表示します。
このように複数のファイルを一度に読み込んだ場合にはファイルの内容が連結された状態で表示されますので、どこまでがどのファイルの内容なのかを判断することはできませんので注意が必要です。


–––––––––– -literalPath パラメータの使用例3 ––––––––––


PS C:\Work> Get-Content -literalPath 'Test`t.txt'
SAMPLE1


このコマンドを実行すると、エスケープ文字列を含むファイル"Test`t.txt"の内容を読み込んで表示します。
エスケープ文字列を含むファイルを読み込む場合は、指定するパスを一重引用符で括る必要がありますので注意してください。(二重引用符で括った場合はエラーとなります)


–––––––––– -literalPath パラメータの使用例4 ––––––––––


PS > PS C:\Work> Get-Content -literalPath "Test[1].txt"
SAMPLE1


このコマンドを実行すると Test[1].txt の内容を読み込んで表示します。これは"Test[1].txt"の"[]"がワイルドカードとして認識されずにファイル名の一部として認識されたためです。
"[]"をワイルドカードとして取り扱うには-Path パラメータを使用します。


-totalCount <long>


内容を何行読み込むかを指定します。規定値は-1となっており、すべての行を読み込みます。


–––––––––– -totalCount パラメータの使用例1 ––––––––––


PS C:\Work> Get-Content -Path "Test1.txt" -TotalCount 1
ABC


このコマンドを実行すると、Test1.txtファイルの内容を1行だけ読み込んで表示します。
-readCount <long>


パイプライン経由で一度に遅れる行数を指定します。規定値は0ですべての行を送ります。

ReadCount の値を大きくすると、最初の行を返すまでの時間は長くなりますが、処理全体の時間が短くなります。


–––––––––– -readCount パラメータの使用例1 ––––––––––


PS C:\Work> Get-Content -Path "Test1.txt" -ReadCount 1 | %{Write-Host $_}
ABC
DEF
GHI


このコマンドを実行すると、Test1.txtファイルの内容を1行ずつパイプライン経由で送り、コンソールへ出力します。


–––––––––– -readCount パラメータの使用例2 ––––––––––


PS C:\Work> Get-Content -Path "Test1.txt" -ReadCount 2 | %{Write-Host $_}
ABC DEF
GHI


このコマンドを実行すると、Test1.txtファイルの内容を2行ずつパイプライン経由で送り、コンソールへ出力します。
2行ずつ渡すので、受け取ったデータは2行分を1度に表示します。


-include <string[]>


-includeパラメータは、-pathパラメータで指定した項目の中から、対象を絞り込みます。
"*.txt"などパス要素やパターンを指定します。


–––––––––– -include パラメータの使用例1 ––––––––––


PS > Get-Content -Path "*.txt" -Include "Test1*.txt"


このコマンドレットは、-pathパラメータで指定した拡張子"*.txt"の中でも特に"Test1*.txt"のファイルを読み込みます。


-exclude <string[]>


-excludeパラメータは、-pathパラメータで指定した項目の中から、項目を除外します。
"*.txt"などパス要素やパターンを指定します。


–––––––––– -exclude パラメータの使用例1 ––––––––––


PS > Get-Content -Path "*.txt" -Exclude "Test1*.txt"


このコマンドレットは、-pathパラメータで指定した拡張子"*.txt"の中でも特に"Test1*.txt"以外のファイルを読み込みます。


-filter <string>


PS > Get-Content -Path "*.txt" -filter "test*.txt"


このコマンドレットは-includeパラメータ同様、-filterパラメータによって対象となるファイルを"test*.txt"に限定します。
-filterパラメータは、ほかのパラメータよりも効率がよいとされています。これは-includeパラメータや-excludeパラメータは、オブジェクト取得後にフィルタをするのですが、-filterパラメータは取得する時点でフィルタをかけるためです。


-encoding


読み込みに使用するエンコードを指定します。使用可能な文字エンコードの種類は Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii です。


Get-Content -Path Test1.txt -Encoding "UTF8"


このコマンドは Test1.txt を UTF8で読み込みます。


サンプルで使用するテキストファイル


使用例で使っているファイルは下記の通りで、C:\Workというフォルダに保存してあるものとします。


Test1.txt
ABC
DEF
GHI


Test2.txt
JKL


Test`t.txt
SAMPLE1


Test[1].txt
SAMPLE2
Tuesday, October 14, 2008 10:39:49 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Tuesday, October 07, 2008

今日はInvoke-Historyコマンドレットについてまとめてみました。

コマンドレット名
Invoke-History

エイリアス
ihy
r

説明
コマンド実行履歴からコマンドを実行します。Get-History コマンドレットを使用して取得したコマンドを Invoke-History に渡すか、コマンド実行履歴のIDを指定して実行を行います。

下記のように、パラメータなしで Invoke-History コマンドレットを実行すると、最新のコマンドを実行します。

PS > Invoke-History

書式
Invoke-History [[-iD] <string>] [-whatIf] [-confirm] [<CommonParameters>]

パラメータ
-iD <string>
履歴内のコマンドを実行します。履歴のIDを指定するか、コマンドの先頭文字をいくつか指定します。
文字を入力した場合は、最新の履歴から一致するものを探して実行します。
ID番号を指定する場合、Get-History コマンドレットで確認することができます。

–––––––––– -iD パラメータの使用例1 ––––––––––

PS > Invoke-History -id 1

このコマンドを実行すると、Get-History コマンドレットで確認可能な履歴のIDが1のコマンドを実行します。

–––––––––– -iD パラメータの使用例2 ––––––––––

PS > Get–History

  Id CommandLine
  – –––––––––––
   1 Get–Help Invoke–History –Detailed
   2 Get–History
   3 Get–Help Invoke–History –Detailed
   4 Get–Help Invoke–History –Detailed
   5 cls
   6 Get–History
   7 Get–ChildItem
   8 Dir
   9 Get–Content C:\Work\Test.txt

PS > Invoke–History –iD cl

はじめに Get-History コマンドレットで現時点までの履歴を確認しています。
次に、Invoke-History コマンドレットで-iD パラメータに文字 "cl"を指定すると、IDが5のコマンド "cls"がヒットするので、 clsコマンドを実行します。

Tuesday, October 07, 2008 11:18:56 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback

Theme design by Jelle Druyts

Pick a theme: