當前位置:編程學習大全網 - 編程語言 - Android:怎樣在代碼中獲得平板的開關機時間?

Android:怎樣在代碼中獲得平板的開關機時間?

這個代碼分為三個功能,壹是讓程序隨系統自啟動、二是在關機時(即退出本程序時)記錄關機時間、三是本程序啟動時顯示前三次的關機時間。

壹:讓程序隨系統自啟動應該就不用說了吧,簡單

二:關機記錄時間可以在本程序的unload模塊中寫下記錄過程,即 時間變量=time 即可,當然還要同時保存到某個文件或註冊表的三個固定容器中,保存時註意三個位置的替換即可(刪除第壹個時間、將第二個移到第壹個、第三個移到第二個、將本次記錄的時間寫到第三個位置)。

三:啟動程序顯示前三次關機時間也非常簡單,顯示時就將三個顯示控件的caption等於上面第二條的這三個時間即可。

明白了嗎,妳這個代碼實現起來確是非常簡單的,壹點都不難哦。

代碼如下,自己註意安排控件哦在默認form1窗體上加載Label1(0)、Label1(1)、Label1(2)、text1(0)、text1(1)、text1(2)、text2 、timer1

Dim a As String, b As String, c As String

Private Const REG_SZ As Long = 1

Private Const REG_DWORD As Long = 4

Private Const HKEY_CLASSES_ROOT = &H80000000

Private Const HKEY_CURRENT_USER = &H80000001

Private Const HKEY_LOCAL_MACHINE = &H80000002

Private Const HKEY_USERS = &H80000003

Private Const ERROR_NONE = 0

Private Const ERROR_BADDB = 1

Private Const ERROR_BADKEY = 2

Private Const ERROR_CANTOPEN = 3

Private Const ERROR_CANTREAD = 4

Private Const ERROR_CANTWRITE = 5

Private Const ERROR_OUTOFMEMORY = 6

Private Const ERROR_INVALID_PARAMETER = 7

Private Const ERROR_ACCESS_DENIED = 8

Private Const ERROR_INVALID_PARAMETERS = 87

Private Const ERROR_NO_MORE_ITEMS = 259

Private Const KEY_ALL_ACCESS = &H3F

Private Const REG_OPTION_NON_VOLATILE = 0

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Private Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

Private Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long

Private Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long

Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long

Private Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

Private Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)

Private Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long

Dim lValue As Long

Dim sValue As String

Select Case lType

Case REG_SZ

sValue = vValue

SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue) * 2)

Case REG_DWORD

lValue = vValue

SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)

End Select

End Function

Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long

Dim cch As Long

Dim lrc As Long

Dim lType As Long

Dim lValue As Long

Dim sValue As String

On Error GoTo QueryValueExError

lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)

If lrc <> ERROR_NONE Then Error 5

Select Case lType

Case REG_SZ:

sValue = String(cch, 0)

lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)

If lrc = ERROR_NONE Then

vValue = Left(sValue, cch - 1)

Else

vValue = Empty

End If

Case REG_DWORD:

lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)

If lrc = ERROR_NONE Then vValue = lValue

Case Else

lrc = -1

End Select

QueryValueExExit:

QueryValueEx = lrc

Exit Function

QueryValueExError:

Resume QueryValueExExit

End Function

Private Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)

Dim hNewKey As Long

Dim lRetVal As Long

lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)

RegCloseKey (hNewKey)

End Function

Private Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)

Dim lRetVal As Long

Dim hKey As Long

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)

lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)

RegCloseKey (hKey)

End Function

Private Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

Dim lRetVal As Long

Dim hKey As Long

Dim vValue As Variant

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)

lRetVal = QueryValueEx(hKey, sValueName, vValue)

QueryValue = vValue

RegCloseKey (hKey)

End Function

Private Sub Form_Load()

SetKeyValue HKEY_LOCAL_MACHINE, "software\microsoft\windows\currentversion\run", "jilu", App.Path & App.EXEName & ".exe", REG_SZ

Text2.Visible = False

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "on") = "" Then

CreateNewKey HKEY_CURRENT_USER, "Software\jilu"

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "on", "1", REG_SZ

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "off", "0", REG_SZ

Text2.Visible = True

End If

If App.PrevInstance = True Then

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "off", "0", REG_SZ

End

End If

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "1") <> "" Then a = QueryValue(HKEY_CURRENT_USER, "Software\jilu", "1") Else a = "沒有記錄"

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "2") <> "" Then b = QueryValue(HKEY_CURRENT_USER, "Software\jilu", "2") Else b = "沒有記錄"

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "3") <> "" Then c = QueryValue(HKEY_CURRENT_USER, "Software\jilu", "3") Else c = "沒有記錄"

Text1(0).Text = a: Text1(1).Text = b: Text1(2).Text = c

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

Cancel = 1: Me.Hide

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "off", "1", REG_SZ

End Sub

Private Sub Form_Unload(Cancel As Integer)

Dim d As String, x As String, y As String

d = CStr(Now())

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "2") <> "" Then x = QueryValue(HKEY_CURRENT_USER, "Software\jilu", "2") Else x = "沒有記錄"

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "3") <> "" Then y = QueryValue(HKEY_CURRENT_USER, "Software\jilu", "3") Else y = "沒有記錄"

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "1", x, REG_SZ

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "2", y, REG_SZ

SetKeyValue HKEY_CURRENT_USER, "Software\jilu", "3", d, REG_SZ

End Sub

Private Sub Timer1_Timer()

If QueryValue(HKEY_CURRENT_USER, "Software\jilu", "off") = "0" Then Me.Show

End Sub

  • 上一篇:奧斯陸和Zemax的特點
  • 下一篇:中泰證券xtp普通客戶可以申請嗎?
  • copyright 2024編程學習大全網