VB2005 スタートアップ MyApplication


VB Tips And Sample(HOME)(VB.NET Sample インデックス)

スタートアップを設定するには「プロジャクト」-「〜プロパティー」で下記画面を表示させる。
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〜
  • 認証モード
  • シャットダウン制御
当は全て書かなければならない。

VB Tips And Sample(HOME)(VB.NET Sample インデックス)