終了時の状態を保存
                                                        玄関へお回り下さい。
レジストリエントリを使ったやり方     (067)
   GetSetting でレジストリの情報を読込み SaveSetting で書き込みます
詳しくはヘルプで調べて下さい。

サンプルは動作確認用です。ご使用時には適当なイベントでお使い下さい。

Option Explicit   'SampleNo=067 WindowsXP VB6.0(SP5) 2002.05.15
Private Sub Command1_Click()
'Microsoft Windows のレジストリにあるアプリケーションの項目から、
'キー設定値を返します。
'GetSetting(appname, section, key[, default])
'appname  アプリケーション名またはプロジェクト名(文字列式)
'section  対象となるキー設定があるセクション名(文字列式)
'Key    取得するキー設定名(文字列式)
'default  キー設定に値が設定されていない場合に返す値
'      省略すると、長さ 0 の文字列 ("") とみなされます。
  Dim Wid As Long
  Dim Hei As Long
  'レジストリからフォームのサイズを読込み
  Wid = Val(GetSetting("Myprogram", "startup", "FormSizeWi", "Wid"))
  Hei = Val(GetSetting("Myprogram", "startup", "FormSizeHi", "Hei"))
  'デフォルトの場合
  If Wid = 0 Then
    Wid = 3700
    Hei = 3000
  End If
  Me.Move 0, 0, Wid, Hei
End Sub


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Dim Ret As Integer
  Ret = MsgBox("終了時の状態を保存しますか", vbYesNo)
  If Ret = vbYes Then
    '現在のフォームサイズをレジストリに書込み
    SaveSetting "Myprogram", "startup", "FormSizeWi", Me.Width
    SaveSetting "Myprogram", "startup", "FormSizeHi", Me.Height
  Else  '作成したレジストリを削除する場合
    '書きこまれていない場合エラーが発生するので
    If GetSetting("Myprogram", "startup", "FormSizeWi", "") <> "" Then
      '作成したレジストリを全部削除
      DeleteSetting "Myprogram"
    End If
  End If
End Sub


部分的に削除する場合   
    DeleteSetting "Myprogram", "startup", "FormSizeHi"



下記のように作成されます。
レジストリ情報を見るには C:\WINDOWS\REGEDIT.EXE を起動して調べます。
注意:設定内容を無暗に変更すると起動しなくなったり、情報が失われる場合がありますので十分に注意してください。



WindowsXPの場合
  HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Myprogram\startup

データファイルを作成する方法       (067)
 
  
レジストリの変わりにシーケンシャルファイルに書き込みます。

サンプルは動作確認用です。ご使用時には適当なイベントでお使い下さい。

Private Sub Command2_Click()
  Dim Wid  As Long
  Dim Hei  As Long
  Dim FileNo As Integer

  If Dir$("Starup.Txt") = "" Then
    'ファイルが無い場合作成
    '最初にメモ帳等でデータファイルを作成しておけば下記は必要無い
    FileNo = FreeFile
    Open "Starup.Txt" For Output As #FileNo
      Wid = 3700
      Hei = 3000
    Write #FileNo, Wid, Hei
    Close #FileNo
  End If

  'データ読込み
  FileNo = FreeFile
  Open "Starup.Txt" For Input As #FileNo
    Input #FileNo, Wid, Hei
  Close #FileNo
  Me.Move 0, 0, Wid, Hei
End Sub


Private Sub Command3_Click()
  Dim Ret As Integer
  Dim Wid  As Long
  Dim Hei  As Long
  Dim FileNo As Integer

  Ret = MsgBox("終了時の状態を保存しますか", vbYesNo)
  If Ret = vbYes Then
    '現在のサイズを保管
    FileNo = FreeFile
    Open "Starup.Txt" For Output As #FileNo
      Wid = Me.Width
      Hei = Me.Height
    Write #FileNo, Wid, Hei
    Close #FileNo
  End If
End Sub




2002/05/16