VB6のApp.PrevInstanceに代わるものは?この答えは、MSDNの「Visual Basic .NET における PrevInstance プロパティの変更点」にあります。代わりは、次のようなメソッドになります。なお、MSDNではUboundを使用していますが、Lengthを使うように変更してあります。 Public Function PrevInstance() As Boolean If Diagnostics.Process.GetProcessesByName( _ Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then Return True Else Return False End If End Function public bool PrevInstance() { if (System.Diagnostics.Process.GetProcessesByName( System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length > 1) return true; else return false; } MSDNによると、このメソッドはVB6のPrevInstanceと以下のような違いがあるということです。 「この動作は Visual Basic 6.0 の動作とは若干異なります。Visual Basic 6.0 では、PrevInstance は完全パスとファイル名が完全に一致する場合にだけ true を返しますが、この例の Visual Basic .NET の関数では、異なるパスから起動された 2 つのインスタンスがある場合に true を返します。さらに PrevInstance は、アプリケーションの 1 つ目のインスタンスの場合は決して true を返しません。Visual Basic .NET では、2 つ目のインスタンスが読み込まれた後は、1 つ目のインスタンスについても true を返します。」 二重起動を禁止する方法については、「二重起動を禁止する」をご覧ください。
|
|
Copyright(C) DOBON!. All rights reserved.
|