VB2005 スタートアップ MyApplication
スタートアップを設定するには「プロジャクト」-「~プロパティー」で下記画面を表示させる。
Form1を最初に起動させたいときは画面①で選択する。
②の「アプリケーションフレームワーク」はプログラム(アプリケーション)の基本枠を使うか否かの選択という事になっている。
基本的にはWindowsアプリケーションフレームワークプロパティーを使うか否かの意味らしい。
ここでは使用してみる。
③はチェックが入っていないでいれる。これは多重起動の禁止という意味。
④は2枚以上のフォームがある場合、最初の1枚目を閉じると全アプリが終了するか否かの選択。
⑤はアプリケーションの起動終了時の処理をゴリゴリとカスタマイズする時に押す。すると⑥のファイルが表示(作成)されるようだ。
これが⑥のファイルの中身。
Namespace My
' 次のイベントは MyApplication に対して利用できます:
'
' Startup: アプリケーションが開始されたとき、スタートアップ フォームが作成される前に発生します。
' Shutdown: アプリケーション フォームがすべて閉じられた後に発生します。このイベントは、通常の終了以外の方法でアプリケーションが終了されたときには発生しません。
' UnhandledException: ハンドルされていない例外がアプリケーションで発生したときに発生するイベントです。
' StartupNextInstance: 単一インスタンス アプリケーションが起動され、それが既にアクティブであるときに発生します。
' NetworkAvailabilityChanged: ネットワーク接続が接続されたとき、または切断されたときに発生します。
Partial Friend Class MyApplication
Private Sub MyApplication_Startup( _
ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
MessageBox.Show("フォームが表示される前に走る場所スタートアップ")
MSDNからコピペして書き加えたもの
コマンドラインで(スペース)/input=??といれて起動した場合、そのコマンドを拾う
Dim inputArgument As String = "/input="
Dim inputName As String = ""
For Each s As String In e.CommandLine
If s.ToLower.StartsWith(inputArgument) Then
inputName = s.Remove(0, inputArgument.Length)
End If
Next
If inputName = "" Then
MsgBox("No input name")
Else
MsgBox("Input name: " & inputName)
Dim f2 As New Form2
f2.Show() 'フォーム2を表示する
End If
End Sub
Private Sub MyApplication_StartupNextInstance( _
ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs _
) Handles Me.StartupNextInstance
MessageBox.Show("このアプリケーションは既に起動しています。")
End Sub
End Class
End Namespace
|
以上が一番簡単な方法らしいが、
実はコマンドラインによってスタートアップフォームを変更したい場合は上記の方法は使用できないらしい。
その場合は、②のチェックをはずした上で、モジュールまたはクラスのなかにMainプロシージャをゴリゴリと書き
①でそのMainプロシージャを指定する必要が生じる。
その場合
- XP Visual スタイルを有効
- 多重起動の禁止
- シャットダウン時にMy.Setting~
- 認証モード
- シャットダウン制御
当は全て書かなければならない。
|