2012-02-17 16 views
0

VB .NETアプリケーションを単一インスタンスとして設定しています。 2回目にアプリケーションを起動しようとすると、ウィンドウが最大化されるのではなく、通常のウィンドウ状態に復元されます(2回目の起動前)。最後の状態を保持するためにアプリケーションウィンドウを作成するにはどうすればよいですか?復元後に単一インスタンスアプリケーションを最大化する

ありがとうございます。

+0

何がここに自動化されていません、 StartupNextInstanceイベントを超えてそのイベントのイベントハンドラでメインフォームに何かをしている場合、それはリストアのように問題がどこにあるかです。コードを投稿すると、それがどのように見えるのか推測できません。 –

+0

遅く返事を申し訳ありません。 StartupNextInstanceイベントは一切使用しません。私は、単一インスタンスを有効にするために、プロジェクト設定で "Single instance application"のプロパティをチェックしました。 – Daniel

答えて

0

あなたは、設定および取得するには

を、それが変わったのとき、レジストリやファイルの最後の状態を保存し、アプリをロードするときにそれを適用することができますレジストリ値は、この点を確認してください。

Public Function GetRegistryValue(ByVal KeyName As String, Optional ByVal DefaultValue As Object = Nothing) As Object 
     Dim res As Object = Nothing 
     Try 
      Dim k = My.Computer.Registry.CurrentUser.OpenSubKey("Software\YourApp", True) 
      If k IsNot Nothing Then 
       res = k.GetValue(KeyName, DefaultValue) 
      Else 
       k = My.Computer.Registry.CurrentUser.CreateSubKey("Software\YourApp") 
      End If 
      If k IsNot Nothing Then k.Close() 
     Catch ' ex As Exception 
      'PromptMsg(ex) 
     End Try 
     Return res 
    End Function 

    Public Sub SetRegistryValue(ByVal KeyName As String, ByVal _Value As Object) 
     Try 
      Dim k = My.Computer.Registry.CurrentUser.OpenSubKey("Software\YourApp", True) 
      If k IsNot Nothing Then 
       k.SetValue(KeyName, _Value) 
      Else 
       k = My.Computer.Registry.CurrentUser.CreateSubKey("Software\YourApp") 
       k.SetValue(KeyName, _Value) 
      End If 
      If k IsNot Nothing Then k.Close() 
     Catch ' ex As Exception 
      'PromptMsg(ex) 
     End Try 
    End Sub 
関連する問題