3.終了時の情報を保存・読み込み・反映(レジストリ使用・他) |
1.レジストリを使って終了時の情報・状態を保存・読み込み反映 2.データファイルを使って終了時の情報・状態を保存・読み込み反映 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定: 使用 API: その他 :このサンプルは、レジストリを操作しております。従った、ある程度レジストリに関する知識をお持ち方が :使用されるようにお願いします。 |
1.レジストリを使って終了時の情報・状態を保存・読み込み反映 |
Option Explicit 'SampleNo:067 2002.05.15 @ 2007.03.19 Private Sub Command1_Click() 'Microsoft Windows のレジストリにあるアプリケーションの項目から、 'キー設定値を返します。 'GetSetting(appname, section, key[, default]) 'appname アプリケーション名またはプロジェクト名(文字列式) 'section 対象となるキー設定があるセクション名(文字列式) 'Key 取得するキー設定名(文字列式) 'default キー設定に値が設定されていない場合に返す値 ' 省略すると、長さ 0 の文字列 ("") とみなされます。 '設定値を読み込み反映させる(本来は、Form_Load イベント等に書くようにして下さい) 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 上記でレジストリに書き込まられば、下記の位置に書き込まれているはずですので、REGEDIT 等で確認して見て下さい。 WindowsXP / Windows 7 HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Myprogram\startup 尚、保存項目等は、必要に応じ、追加・変更して下さい。 |
2.データファイルを使って終了時の情報・状態を保存・読み込み反映 |
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 保存場所、保存項目等は、必要に応じ、追加・変更して下さい。 又、プログラムの動作イベント等は、Form_Load イベントや Form_QueryUnload イベント等を使用するようにして下さい。 |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
終了時の状態を保存・レジストリ使用他 1.レジストリからフォームのサイズを読込み 2.現在のフォームサイズをレジストリに書込み 3.作成したレジストリを全部削除 4.データファイルを作成し、終了時のフォームの状態を保存・読込む方法 |