|
Thread: Reg
-
Aug 22nd, 2000, 04:35 AM
#1
Thread Starter
Fanatic Member
hi,
i have started to play about with the registry and i was wondering how you can add a key in the regisitry through vb and then to check if the key is there at a later stage, also what information can u put in these keys
Cheers
Merlin ?
Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.
-- Linus Torvalds
[ Galahtech.com] | [ My Site] | [ Fishsponge] | [ UnixForum.co.uk]
-
Aug 22nd, 2000, 05:11 AM
#2
Fanatic Member
All VB has to offer is:
SaveSetting AppName, Section, Key, Setting
Value = GetSetting(AppName, Section, Key, Default)
DeleteSetting AppName, Section, Key
TwoDimArr = GetAllSettings(AppName, Section)
Just specify the name, the Section (eg Settings), and The key (eg Points)
(All settings are saved in HKEY_CURRENT_USER/Software/VB and VBA Program Settings/(appName)/(Section)/(Key) )
You could, of course, use the API if you want to save it somewhere else or you want to read settings from somewhere else.
-
Aug 22nd, 2000, 05:19 AM
#3
Thread Starter
Fanatic Member
hi,
ok if i wanted to add the following information into the registry and then on form load check it is there what code do i add
i want to add merlincomputers\alarm\reg02584
cheers
Merlin ?
p.s. could include code as it helps me understand
Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.
-- Linus Torvalds
[ Galahtech.com] | [ My Site] | [ Fishsponge] | [ UnixForum.co.uk]
-
Aug 22nd, 2000, 07:44 AM
#4
Code for a Module
Code:
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal HKEY 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 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 RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal HKEY As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal HKEY As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData 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, lpData As Any, ByVal cbData As Long) As Long
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 REG_SZ = 1
Function RegQueryStringValue(ByVal HKEY As Long, ByVal strValueName As String)
Dim lResult As Long
Dim lValueType As Long
Dim strBuf As String
Dim lDataBufSize As Long
On Error GoTo 0
lResult = RegQueryValueEx(HKEY, strValueName, 0&, lValueType, ByVal 0&, lDataBufSize)
If lResult = ERROR_SUCCESS Then
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(HKEY, strValueName, 0&, 0&, ByVal strBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
RegQueryStringValue = StripTerminator(strBuf)
End If
End If
End If
End Function
Public Function GetSettingEx(HKEY As Long, sPath As String, sValue As String)
Dim KeyHand&
Dim datatype&
Call RegOpenKey(HKEY, sPath, KeyHand&)
GetSettingEx = RegQueryStringValue(KeyHand&, sValue)
Call RegCloseKey(KeyHand&)
End Function
Function StripTerminator(ByVal strString As String) As String
Dim intZeroPos As Integer
intZeroPos = InStr(strString, Chr$(0))
If intZeroPos > 0 Then
StripTerminator = Left$(strString, intZeroPos - 1)
Else
StripTerminator = strString
End If
End Function
Public Sub SaveSettingEx(HKEY As Long, sPath As String, sValue As String, sData As String)
Dim KeyHand As Long
Call RegCreateKey(HKEY, sPath, KeyHand)
Call RegSetValueEx(KeyHand&, sValue, 0, REG_SZ, ByVal sData, Len(sData))
Call RegCloseKey(KeyHand&)
End Sub
Usage: Needs 2 Commandbuttons
Code:
Private Sub Command1_Click()
'Save a value to the Registry
SaveSettingEx HKEY_CURRENT_USER, "Software\Myapp", "Testing", "Hello"
End Sub
Private Sub Command2_Click()
'Get a value from the Registry
Retval = GetSettingEx(HKEY_CURRENT_USER, "Software\MyApp", "Testing")
Print Retval
End Sub
-
Aug 22nd, 2000, 07:49 AM
#5
Fanatic Member
Code:
Private Sub Form_Load()
Dim Value As Long
Value = GetSetting("Merlin Computers", "Alarm", "reg02584", 0)
If Value <> 0 Then
Print "Exists"
Else:
Print "Doesn't exist"
End If
End Sub
To put that value there in the first place:
Code:
Private Sub Command1_Click()
Dim TheValue As Long
TheValue = 20
Call SaveSetting("Merlin Computers", "Alarm", "reg02584", TheValue)
End Sub
I hope this helps,
Le Moi
-
Aug 22nd, 2000, 10:10 AM
#6
Thread Starter
Fanatic Member
hi,
Thanks to both of you
V(ery)Basic
and
Megatron
You really helped
Cheers
Merlin ?
Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.
-- Linus Torvalds
[ Galahtech.com] | [ My Site] | [ Fishsponge] | [ UnixForum.co.uk]
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|