如何把一个数据库的连接字符串写到注册表中,每次运行程序,去读出该字符串。而且可以对该字符串进行修改
解决方案 »
- 这是怎么会事。。。。
- 有没有这样的函数?
- 尋找合作開發MPR2伙伴
- 我想在combo或datacombo控件中显示gz_data表中月份字段,然后选择控件中显示的月份,按选定的月份查询gz_data表中,等于选定月份的所有数
- 在VB中如何实现凹凸的字体?在线结帐
- 请教一个关于VB的IIS APPLICATION的简单问题
- 小弟要做一个asp+vb(com)+access的三层结构的学生作业管理系统,各位大虾能不能推荐一些例子和资料啊~??谢谢
- 求助关于采集自动存入数据库的问题
- 如何没有装office的电脑中打开PPT文件?
- SubZero 您好,请讲一下MSCOMM的用法,及按您说的情况谈一下详细的编程思路。谢谢!
- 简单问题,但我不知道,呵!高手快出手帮助啊?很急!在线等!
- 关于Excel数据导出问题?
csdn上也有很多类似的问题都已经答过了,你可以参考一下
'------------------------------
'作者:David_Lv
'时间:2003-06-08
'
'类名:CRegister
'功能:对注册表的一些简单操作
'------------------------------
Option Explicit
'======变量定义======
Private Const HKEY_CURRENT_USER = &H80000001 '所需注册的hKey位置
Private Const REG_SZ = 1 '键值的数据类型
'======API声明======
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPrivate Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String) 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 LongPrivate 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 RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
(ByVal hKey As Long, ByVal lpSubKey As String) As Long
'======方法定义======'创建一个项
Public Function CreateRegKey(ByVal vSubKey As String) As Boolean
On Error GoTo ErrH
Dim nResult As Long
'检查传入的值是否合法
If Len(vSubKey) = 0 Then GoTo ErrH
'在注册表中创建一个项
nResult = RegCreateKey(HKEY_CURRENT_USER, vSubKey, nResult)
If nResult <> 0 Then GoTo ErrH
CreateRegKey = True
Exit Function
ErrH:
CreateRegKey = False
End Function
'删除一个最底层项
Public Function DeleteRegKey(ByVal vSubKey As String) As Boolean
On Error GoTo ErrH
Dim nResult As Long
'检查传入的值是否合法
If Len(vSubKey) = 0 Then GoTo ErrH
'在注册表中删除一个项
nResult = RegDeleteKey(HKEY_CURRENT_USER, vSubKey)
If nResult <> 0 Then GoTo ErrH
DeleteRegKey = True
Exit Function
ErrH:
DeleteRegKey = False
End Function
'在指定的项中写入一个值
Public Function SetRegValue(ByVal vSubKey As String, ByVal vKeyName As String, ByVal vKeyValue As String) As Boolean
On Error GoTo ErrH
Dim nResult As Long
Dim nKey As Long
'检查传入的值是否合法
If Len(vSubKey) = 0 Then GoTo ErrH
If Len(vKeyName) = 0 Then GoTo ErrH
If Len(vKeyValue) = 0 Then GoTo ErrH
'检查是否存在vSubKey项,成功会返回一个nKey值
nResult = RegOpenKey(HKEY_CURRENT_USER, vSubKey, nKey)
If nResult <> 0 Then GoTo ErrH
'根据nKey键值,写入键名及键值
nResult = RegSetValueEx(nKey, vKeyName, 0, REG_SZ, ByVal vKeyValue, LenB(StrConv(vKeyValue, vbFromUnicode)) + 1)
If nResult <> 0 Then GoTo ErrH
SetRegValue = True
Exit Function
ErrH:
SetRegValue = False
End Function
'查找指定项中指定键值名称的键值
'如果注册表中没有指定的项值vSubKey,lpcbData参数返回0
'如果有项值但没有键名vKeyName,lpcbData参数返回2
'如果vKeyValue为一个字符,lpcbData参数返回2
'如果vKeyValue大于一个字符,lpcbData参数返回>2
Public Function GetRegValue(ByVal vSubKey As String, ByVal vKeyName As String) As String
On Error GoTo ErrH
Dim nResult As Long, nKey As Long, nKeyValue As String
Dim nBufferSize As Long
'检查传入的参数是否合法
If Len(vSubKey) = 0 Then GoTo ErrH
If Len(vKeyName) = 0 Then GoTo ErrH
'打开指定的项,成功会返回一个nKey值
nResult = RegOpenKey(HKEY_CURRENT_USER, vSubKey, nKey)
If nResult <> 0 Then GoTo ErrH
'根据nKey获取键值的长度
nResult = RegQueryValueEx(nKey, vKeyName, 0, REG_SZ, 0, nBufferSize)
'根据nKey获取键值的内容
nKeyValue = Space(nBufferSize + 1)
nResult = RegQueryValueEx(nKey, vKeyName, 0, REG_SZ, ByVal nKeyValue, nBufferSize)
'返回的nKeyValue的后面会有Null字符,所以先用""替换Null字符,再进行Trim
nKeyValue = Trim(Replace(nKeyValue, vbNullChar, ""))
GetRegValue = nKeyValue
Exit Function
ErrH:
GetRegValue = ""
End Function
'删除指定项中的一个键
Public Function DeleteRegValue(ByVal vSubKey As String, ByVal vKeyName As String) As Boolean
On Error GoTo ErrH
Dim nResult As Long
Dim nKey As Long
'检查传入的参数是否合法
If Len(vSubKey) = 0 Then GoTo ErrH
If Len(vKeyName) = 0 Then GoTo ErrH
'打开指定的项,成功会返回一个nKey值
nResult = RegOpenKey(HKEY_CURRENT_USER, vSubKey, nKey)
If nResult <> 0 Then GoTo ErrH
'根据nKey删除指定的键
nResult = RegDeleteValue(nKey, vKeyName)
If nResult <> 0 Then GoTo ErrH
DeleteRegValue = True
Exit Function
ErrH:
DeleteRegValue = False
End Function
saveseting("你的工程名","你的域名","键的名称","键值")
如 saveseting("test1","test2","username","admin")
saveseting以后可以用getseting来取
如: username= GetSetting("test1", "test2", _
"username", "admin")
在getsetring中,admin是一个缺省值,就是说是你设定的一个默认值,可以不要。
你只要把数据库访问的几个参数在设定时通过saveseting来设,在使用时通过getseting来取就行了。