2018年1月5日 星期五

VB.NET 利用登錄檔,紀錄程式使用次數

參考資料1:[VB6][VBA][C#][JAVA] 製作簡易 時間/次數 測試版 試用版
參考資料2:讀取和寫入登錄 (Visual Basic)
或者搜尋Computer.Registry

Step 1. 畫面上建立三個Button,分別是Button1、Button2、Button3,Button1屬性Name為「點我 增加使用次數」、Button2屬性Name為「刪除使用次數」、Button3屬性Name為「完整刪除」,建議先看一下參考資料2

Code 如下

Public Class Form1

    '點我 增加使用次數
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        '開啟TEST_Company1\TestAPP01
        Dim regVersion = My.Computer.Registry.CurrentUser.OpenSubKey("TEST_Company1\TestAPP01", True)

        If regVersion Is Nothing Then
            '假如不存在,就在HKEY_CURRENT_USER底下,建立TEST_Company1\TestAPP01
            '這裡TEST_Company1\TestAPP01,有點像是電腦中的資料夾路徑的概念,程式會幫我們儲存在登錄檔的HKEY_CURRENT_USER底下,並建立TEST_Company1\TestAPP01
            regVersion = My.Computer.Registry.CurrentUser.CreateSubKey(
                         "TEST_Company1\TestAPP01") ' Key doesn't exist; create it.
        End If

        Dim int_usage_count As Integer = 0
        If regVersion IsNot Nothing Then
            int_usage_count = regVersion.GetValue("usage_count", 0)
            int_usage_count = int_usage_count + 1
            regVersion.SetValue("usage_count", int_usage_count)
            regVersion.Close()

            MsgBox("使用次數" & int_usage_count)
        End If

    End Sub

    '刪除使用次數
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        '開啟TEST_Company1\TestAPP01
        Dim regVersion = My.Computer.Registry.CurrentUser.OpenSubKey("TEST_Company1\TestAPP01", True)

        If Not regVersion Is Nothing Then
            '假如存在
            If regVersion IsNot Nothing Then
                regVersion.DeleteValue("usage_count")
                regVersion.Close()
                MsgBox("刪除完成")
            End If
        End If

    End Sub

    '完整刪除
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        '開啟TEST_Company1
        Dim regVersion = My.Computer.Registry.CurrentUser.OpenSubKey("TEST_Company1", True)

        If Not regVersion Is Nothing Then
            '假如存在,就整個刪除
            My.Computer.Registry.CurrentUser.DeleteSubKeyTree("TEST_Company1")

            '假如只要刪除TestAPP01底下的資料,可以使用以下程式碼刪除
            'My.Computer.Registry.CurrentUser.DeleteSubKey("TEST_Company1\TestAPP01")

            regVersion.Close()
            MsgBox("全部刪除完成")
        End If
    End Sub
End Class

Step 2.執行程式完後,可以開啟「登入編輯程式」(開始>搜尋程式及檔案>輸入regedit)