InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Работа с реестром

Public Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when
system is rebooted

Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006

Public Const SYNCHRONIZE = &H100000


Public Const READ_CONTROL = &H20000
Public Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Public Const STANDARD_RIGHTS_REQUIRED = &HF0000
Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_EVENT = &H1 ' Event contains key event record
Public Const KEY_NOTIFY = &H10
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or
KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or
KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Public Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))
Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE
Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or
KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))

Public Const REG_BINARY = 3 ' Free form binary
Public Const REG_DWORD = 4 ' 32-bit number
Public Const REG_DWORD_BIG_ENDIAN = 5 ' 32-bit number
Public Const REG_DWORD_LITTLE_ENDIAN = 4 ' 32-bit number (same
as REG_DWORD)
Public Const REG_EXPAND_SZ = 2 ' Unicode nul
terminated string
Public Const REG_MULTI_SZ = 7 ' Multiple Unicode
strings
Public Const REG_LINK = 6 ' Symbolic Link
(unicode)
Public Const REG_NONE = 0 ' No value type
Public Const REG_SZ = 1 ' Unicode nul
terminated string


Declare Function RegCloseKey Lib "advapi32.dll" (ByVal HKey As Long)
As Long
Declare Function RegConnectRegistry Lib "advapi32.dll" Alias
"RegConnectRegistryA" (ByVal lpMachineName As String, ByVal HKey As
Long, phkResult As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA"
(ByVal HKey As Long, ByVal lpSubKey As String, phkResult As Long) As
Long
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
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA"
(ByVal HKey As Long, ByVal lpSubKey As String) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias
"RegDeleteValueA" (ByVal HKey As Long, ByVal lpValueName As String) As
Long
Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA"
(ByVal HKey As Long, ByVal dwIndex As Long, ByVal lpName As String,
ByVal cbName As Long) As Long
Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA"
(ByVal HKey As Long, ByVal dwIndex As Long, ByVal lpName As String,
lpcbName As Long, lpReserved As Long, ByVal lpClass As String,
lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long
Rem Modifiziert !!!!!!!!!!!!
Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA"
(ByVal HKey As Long, ByVal dwIndex As Long, ByVal lpValueName As
String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As
Long, ByVal lpData As String, lpcbData As Long) As Long

Declare Function RegFlushKey Lib "advapi32.dll" (ByVal HKey As Long)
As Long
Declare Function RegGetKeySecurity Lib "advapi32.dll" (ByVal HKey As
Long, ByVal SecurityInformation As Long, pSecurityDescriptor As
SECURITY_DESCRIPTOR, lpcbSecurityDescriptor As Long) As Long
Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA"
(ByVal HKey As Long, ByVal lpSubKey As String, ByVal lpFile As String)
As Long
Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" (ByVal
HKey As Long, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As
Long, ByVal hEvent As Long, ByVal fAsynchronus As Long) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA"
(ByVal HKey As Long, ByVal lpSubKey As String, phkResult As Long) As
Long
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
Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias
"RegQueryInfoKeyA" (ByVal HKey As Long, ByVal lpClass As String,
lpcbClass As Long, lpReserved As Long, lpcSubKeys As Long,
lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long,
lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long,
lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long
Declare Function RegQueryValue Lib "advapi32.dll" Alias
"RegQueryValueA" (ByVal HKey As Long, ByVal lpSubKey As String, ByVal
lpValue As String, lpcbValue As Long) As Long
Rem Modifiziert !!!!!!!!!!!!
Declare Function RegQueryValueEx 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 ' Note that if you declare the lpData
parameter as String, you must pass it By Value.

Declare Function RegReplaceKey Lib "advapi32.dll" Alias
"RegReplaceKeyA" (ByVal HKey As Long, ByVal lpSubKey As String, ByVal
lpNewFile As String, ByVal lpOldFile As String) As Long
Declare Function RegRestoreKey Lib "advapi32.dll" Alias
"RegRestoreKeyA" (ByVal HKey As Long, ByVal lpFile As String, ByVal
dwFlags As Long) As Long
Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA"
(ByVal HKey As Long, ByVal lpFile As String, lpSecurityAttributes As
SECURITY_ATTRIBUTES) As Long
Declare Function RegSetKeySecurity Lib "advapi32.dll" (ByVal HKey As
Long, ByVal SecurityInformation As Long, pSecurityDescriptor As
SECURITY_DESCRIPTOR) As Long
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA"
(ByVal HKey As Long, ByVal lpSubKey As String, ByVal dwType As Long,
ByVal lpData As String, ByVal cbData As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias
"RegSetValueExA" (ByVal HKey As Long, ByVal lpValueName As String,
ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String,
ByVal cbData As Long) As Long ' Note that if you declare the
lpData parameter as String, you must pass it By Value.
Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA"
(ByVal HKey As Long, ByVal lpSubKey As String) As Long

Public Function ReadRegSet(ByVal Hive As String, ByVal key As String,
Optional ByVal HKey As Long = HKEY_LOCAL_MACHINE) As String
Dim Result As Long
Dim s As String
Dim KeyType As Long
Dim BufferLengh As Long
Dim n As Long
Dim x As Long
Dim p As Integer

Result = RegOpenKeyEx(HKey, Hive, 0, KEY_READ, HKey)
s = VBA.String(255, " "): BufferLengh = 255: n = 0: x = 0
Result = RegQueryValueEx(HKey, key, 0, KeyType, s, BufferLengh)
Result = RegCloseKey(HKey)
p = InStr(s, Chr(0))
If p >= 1 Then
s = Left(s, p - 1)
Else
s = ""
End If
ReadRegSet = Trim(s)
End Function

Public Function WriteRegSet(ByVal Hive As String, ByVal key As String,
ByVal value As String, Optional ByVal HKey As Long =
HKEY_LOCAL_MACHINE) As Long
Dim Result As Long
Result = RegOpenKeyEx(HKey, Hive, 0, KEY_WRITE, HKey)
Result = RegSetValueEx(HKey, key, 0, REG_SZ, value, Len(value) + 1)
Result = RegCloseKey(HKey)
WriteRegSet = Result
End Function

Public Function EnumRegSet(ByVal Hive As String, ByVal Index As Long,
Optional ByVal HKey As Long = HKEY_LOCAL_MACHINE) As String
Dim Result As Long
Dim s As String
Dim KeyType As Long
Dim BufferLengh As Long
Dim vname As String
Dim vnamel As Long
Dim ft As FILETIME
Dim n As Long
Dim x As Long
Dim p As Long
Result = RegOpenKeyEx(HKey, Hive, 0, KEY_READ, HKey)
s = VBA.String(250, " "): BufferLengh = 240: n = 0: x = 0
vname = VBA.String(250, " "): vnamel = 240
Rem result = RegQueryValueEx(hkey, key, 0, keytype, s, bufferlengh)
Result = RegEnumValue(ByVal HKey, ByVal Index, vname, vnamel, 0,
KeyType, s, BufferLengh)
If Result <> 0 Then vname = ""
Result = RegCloseKey(HKey)
p = InStr(vname, Chr(0))
If p >= 1 Then
vname = Left(vname, p - 1)
Else
vname = ""
End If

EnumRegSet = vname
End Function

Public Function DeleteSet(ByVal Hive As String, ByVal s As String,
Optional ByVal HKey As Long = HKEY_LOCAL_MACHINE) As Long
Dim r As Long
r = RegOpenKeyEx(HKey, Hive, 0, KEY_ALL_ACCESS, HKey)
r = RegDeleteValue(HKey, s)
r = RegCloseKey(HKey)
DeleteSet = r
End Function

Public Function GetMSAppDir(ByVal AppExeFile As String) As String
GetMSAppDir =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\APP PATHS\" &
AppExeFile, "Path", HKEY_LOCAL_MACHINE)
End Function

Public Function GetMSAppExe(ByVal AppExeFile As String) As String
GetMSAppExe =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\APP PATHS\" &
AppExeFile, "", HKEY_LOCAL_MACHINE)
End Function

Public Function GetRegKeys(ByRef DstColl As Collection, ByVal Hive As
String, Optional ByVal HKey As Long = HKEY_LOCAL_MACHINE) As Long
Dim i As Long
Dim h As String

Do While DstColl.Count > 0
DstColl.Remove 1
Loop

i = 0
h = "..."
Do While h <> ""
h = EnumRegSet(Hive, i, HKey)
If h <> "" Then DstColl.Add h
i = i + 1
Loop
GetRegKeys = DstColl.Count
End Function

Public Function GetComputername() As String
GetComputername =
ReadRegSet("SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\COMPUTERNAME",
"COMPUTERNAME", HKEY_LOCAL_MACHINE)
End Function

Public Function GetUsrTempDir() As String
Dim h As String
h = ReadRegSet("ENVIRONMENT", "TMP", HKEY_CURRENT_USER)
If h = "" Then
'h = ReadRegSet("ENVIRONMENT", "TMP", HKEY_CURRENT_USER)
End If
GetUsrTempDir = h
End Function

Public Function GetPrgFilesDir() As String
GetPrgFilesDir =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION",
"PROGRAMFILESDIR", HKEY_LOCAL_MACHINE)
End Function

Public Function GetCommonFilesDir() As String
GetCommonFilesDir =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION",
"COMMONFILESDIR", HKEY_LOCAL_MACHINE)
End Function

Public Function GetCommonDesktop() As String
GetCommonDesktop =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL
FOLDERS", "COMMON DESKTOP", HKEY_LOCAL_MACHINE)
End Function

Public Function GetCommonSMPrograms() As String
GetCommonSMPrograms =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL
FOLDERS", "COMMON PROGRAMS", HKEY_LOCAL_MACHINE)
End Function

Public Function GetCommonStartMenu() As String
GetCommonStartMenu =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL
FOLDERS", "COMMON START MENU", HKEY_LOCAL_MACHINE)
End Function

Public Function GetCommonStartup() As String
GetCommonStartup =
ReadRegSet("SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL
FOLDERS", "COMMON STARTUP", HKEY_LOCAL_MACHINE)
End Function


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua