|
-
Apr 21st, 2003, 04:14 AM
#1
Thread Starter
Addicted Member
Editing registry In VB
in VB how is it possible to make changes to the registry.
basically i want to be able 2 switch between 2 servers but the server "domain,ip"; is stored in the registry so i want to add 2 command buttons to my form.
Command 1 = Connect To Original Server
- will change the domain and ip to the original server
Command 2 = Connect To My Server
- will change the domain and ip to my server address
and also maybe have a check to know what server they are on.
if they connect to original server it displays some information in a text box or somethin... and if they connect to mine i can get it to display some of my server info. and if they are connected to my server and they attempt to press again a msg box will appear saying "already Connnected To This Server"
i can see this being alot of coding but if anyone can offer any help, tutorials or sample codes to get me started that would b great!
-
Apr 21st, 2003, 05:39 AM
#2
Fanatic Member
There are two methods GetSetting and SaveSetting use them to edit the registry..
HTH
-
Apr 21st, 2003, 06:29 AM
#3
Registered User
Originally posted by sridharavijay
There are two methods GetSetting and SaveSetting use them to edit the registry..
HTH
there are more then just 2 methods. these are built-in functions of VB. However if you really want to do things like adding keys, adding/editing values, deleting keys, etc. you are going to have to use the API functions to deal with the registry
-
Apr 21st, 2003, 06:31 AM
#4
Registered User
-
Apr 21st, 2003, 06:31 AM
#5
Thread Starter
Addicted Member
all i want is a command button that once clicked it will change a key in the registry
-
Apr 21st, 2003, 06:44 AM
#6
Registered User
what key are you looking at changing?
one other note i would also suggest downloading the API-Guide 3.7 from that site that I told you about in my previous post
-
Apr 21st, 2003, 06:56 AM
#7
Thread Starter
Addicted Member
[HKEY_CURRENT_USER\Software\Microsoft\MessengerService]server="messenger.hotmail.com;63.13.17.64";
and
[HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger]
server="messenger.hotmail.com"
to my own server values...
-
Apr 21st, 2003, 07:01 AM
#8
Registered User
what OS are you running just so i know?
-
Apr 21st, 2003, 07:14 AM
#9
Thread Starter
Addicted Member
-
Apr 21st, 2003, 07:18 AM
#10
Registered User
ok like i said you may want to go to that website however here is a snippet of code that i got from there website. i would send you something that i have but i'm not at the computer that has the project i'm working one for the day. but here i hope this helps
VB Code:
'This program needs 3 buttons
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_BINARY = 3 ' Free form binary
Const HKEY_CURRENT_USER = &H80000001
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private 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
Private 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
Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
'retrieve nformation about the key
lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
If lResult = 0 Then
If lValueType = REG_SZ Then
'Create a buffer
strBuf = String(lDataBufSize, Chr$(0))
'retrieve the key's content
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)
If lResult = 0 Then
'Remove the unnecessary chr$(0)'s
RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)
End If
ElseIf lValueType = REG_BINARY Then
Dim strData As Integer
'retrieve the key's value
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize)
If lResult = 0 Then
RegQueryStringValue = strData
End If
End If
End If
End Function
Function GetString(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Open the key
RegOpenKey hKey, strPath, Ret
'Get the key's content
GetString = RegQueryStringValue(Ret, strValue)
'Close the key
RegCloseKey Ret
End Function
Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Save a string to the key
RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
'close the key
RegCloseKey Ret
End Sub
Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Set the key's value
RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4
'close the key
RegCloseKey Ret
End Sub
Sub DelSetting(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Delete the key's value
RegDeleteValue Ret, strValue
'close the key
RegCloseKey Ret
End Sub
Private Sub Command1_Click()
Dim strString As String
'Ask for a value
strString = InputBox("Please enter a value between 0 and 255 to be saved as a binary value in the registry.", App.Title)
If strString = "" Or Val(strString) > 255 Or Val(strString) < 0 Then
MsgBox "Invalid value entered ...", vbExclamation + vbOKOnly, App.Title
Exit Sub
End If
'Save the value to the registry
SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString)
End Sub
Private Sub Command2_Click()
'Get a string from the registry
Ret = GetString(HKEY_CURRENT_USER, "KPD-Team", "BinaryValue")
If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub
MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title
End Sub
Private Sub Command3_Click()
'Delete the setting from the registry
DelSetting HKEY_CURRENT_USER, "KPD-Team", "BinaryValue"
MsgBox "The value was deleted ...", vbInformation + vbOKOnly, App.Title
End Sub
Private Sub Form_Load()
'KPD-Team 1998
'URL: [url]http://www.allapi.net/[/url]
Command1.Caption = "Set Value"
Command2.Caption = "Get Value"
Command3.Caption = "Delete Value"
End Sub
-
Apr 21st, 2003, 07:57 AM
#11
Thread Starter
Addicted Member
many thanks i will try out the code now and check out the site
-
Apr 21st, 2003, 08:58 AM
#12
Registered User
you are going to have to modify the code a bit, but it is something to get you started
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
|