|
.NET TIPS Visual Basic 2005で多重起動禁止時にメッセージを出すには?[VS 2005のみ、VB]デジタルアドバンテージ 遠藤 孝信2007/08/23 |
![]() |
|
|
|
「TIPS:Visual Basic 2005でWindowsアプリケーションの多重起動を禁止するには?」では、Visual Basic 2005(Visual Basic 2005 Express EditionあるいはVisual Studio 2005のVisual Basic。以下、VB 2005)でアプリケーションを1つのインスタンスしか実行できないようにする方法について解説している。
そのようにした場合には、2つ目のインスタンスを起動しようとすると1つ目のインスタンスのウィンドウがアクティブになるのだが、これだけでは利用者によっては何が起こったか理解しづらいこともあるだろう。本稿では、多重起動禁止時に2つ目のインスタンスを実行しようとしたとき、その旨を伝えるメッセージを表示する方法について解説する。
StartupNextInstanceイベント
多重起動禁止時*1には、2つ目以降のインスタンスが起動されようとすると、そのインスタンスでMyApplicationクラスのStartupNextInstanceイベントが発生するという仕組みがVB 2005のWindowsアプリケーション・フレームワーク*2に実装されている。
| *1 プロジェクトのプロパティの[アプリケーション]タブで[単一インスタンスのアプリケーションを作成する]チェックボックスをオンにしたとき。 *2 VB 2005のアプリケーション・フレームワークやMyApplicationクラスについては「TIPS:Visual Basic 2005のアプリケーション・フレームワークとは?」を参照。 |
よって、StartupNextInstanceイベントのイベント・ハンドラで「このアプリケーションは複数起動できません」といったメッセージを出すようにすればよい。
MyApplicationクラスにStartupNextInstanceイベント・ハンドラを追加するには、まずプロジェクトのプロパティで[アプリケーション イベントの表示]ボタンをクリックしてプロジェクトに「ApplicationEvents.vb」を追加する。次にこのファイルをエディタで開き、エディタ画面の左上のドロップダウンリストから「(MyApplicationイベント)」を、その右のドロップダウンリストから「StartupNextInstance」を選択する。
これにより、次の画面のようにStartupNextInstanceイベント・ハンドラとなるMyApplication_StartupNextInstanceメソッドが自動作成される。
![]() | ||||||
| StartupNextInstanceイベント・ハンドラの追加 | ||||||
VB 2005ではイベント・ハンドラを自動作成することができる。
|
そしてイベント・ハンドラに以下のようなコードを記述する。
| |
| StartupNextInstanceイベント・ハンドラに追加するコード | |
| グレーの部分はVB 2005により自動的に記述されるコード。 |
ここではActivateメソッドによりメイン・フォームをアクティブにしてからメッセージを表示している。これにより、メッセージボックスがほかのウィンドウより前面に表示されるようになる。
ちなみに、MyApplicationクラスのイベントの1つに、アプリケーション起動時に発生するStartupイベントがあるが、多重起動を禁止している場合には、このイベントは1つ目のインスタンスでのみ発生するようになる。2つ目以降のインスタンスでは、Startupイベントの代わりにStartupNextInstanceイベントが発生するというわけだ。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Visual Studio 2005 処理対象:プロジェクト カテゴリ:Visual Basic 2005 処理対象:アプリケーション・フレームワーク 関連TIPS:Visual Basic 2005でWindowsアプリケーションの多重起動を禁止するには? 関連TIPS:Visual Basic 2005のアプリケーション・フレームワークとは? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



