最終更新日 2005 年 12 月 2 日
サンプル コードのダウンロード (vbmigtips_MyApplication.msi, 479 KB)
※ このサンプルをインストールするには Visual Studio 2005 Beta 2 が必要です。
Visual Basic 2005 では、.NET Framework 2.0 のサポートにより、My 機能が新たに追加されました。この My 機能には、.NET Framework でよく使われるクラスや機能へのエントリ ポイントが提供されています。これにより、よく使用する機能を手軽に利用できるようになりました。
My 機能には、クラス ライブラリの中でよく使用する機能のショートカットと、プロジェクトにフォームやリソースなどを追加したときに自動生成される動的オブジェクトの 2 種類があります。よく使用する機能へのショートカットには、My.Application、My.Computer、My.User などがあり、それぞれ独自のオブジェクト階層を持っています。そこで今回は、アプリケーションの情報を取得する My.Application クラスについて紹介します。
アプリケーションの情報を取得する場合、Visual Basic 6.0 では、App オブジェクトを使用します。たとえば、アプリケーション名と実行パスを取得する場合、下記のように記述します。
Private Sub Form_Load()
Text1.Text = App.Title
Text2.Text = App.Path
End Sub リスト1
上記(リスト1)の「Text1.Text = App.Title」でアプリケーション名を、「Text2.Text = App.Path」で実行パスをそれぞれ取得し、各テキストボックスに表示します。上記を実装し、プロジェクトを実行すると、図1 のように、取得したアプリケーション名と実行パスが各テキストボックスに表示されます。
図 1
このように、Visual Basic 6.0 では、App オブジェクトを使用しましたが、Visual Basic .NET では App オブジェクトがサポートされなくなり、代わりにほとんどのプロパティが、.NET Framework のプロパティに割り当てられました。たとえば、実行パスを取得する場合、System.IO.Directory クラスの GetCurrentDirectory メソッドを使用して取得します。しかし、アプリケーション名を取得する App.Title のように、App オブジェクトがサポートされなくなったことにより、対応する機能がサポートされなくなったものもあります。
一方、Visual Basic 2005 では、新たに追加された My.Application クラスを使用して、実行中のアプリケーションに関する情報を取得することができます。Visual Basic 6.0 ではサポートされて、Visual Basic .NET ではサポートされていなかった機能についてもサポートされています。リスト1 を Visual Basic 2005 の My.Application クラスを使用した形式に書き換えると、以下のようになります。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = My.Application.Info.Title
TextBox2.Text = My.Application.Info.DirectoryPath
End Sub リスト2
上記(リスト2)の「TextBox1.Text = My.Application.Info.Title」でアプリケーション名を取得し、「TextBox2.Text = My.Application.Info.DirectoryPath」で実行パスを取得します。上記を実装し、プロジェクトを実行すると、図2 のように、取得したアプリケーション名と実行パスが各テキストボックスに表示されます。
図 2
上記で紹介した以外にも、My.Application には、これまで Win32API を使用して取得していたバージョン情報などの取得に関するメソッドもサポートされています。これにより、より簡単に実装することができます。さらに、My 機能は独自の階層を持っているため、目的の機能の実装も効率よく行えるようになりました。