浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

给网站添加一个注册表 之 “类的完成”

<%
'------------------------------------------------------------------------------------
'类名:RegistryObject 网页信息注册表类
'作者:张少棠 (Tonton)
'邮箱:tonton@yeah.net
'时间:2004年8月1日
'说明:模仿WINDOWS中注册表的方式,结合XML与ASP技术,给网站添加一个专用的“注册表”类。
'网址:http://blog.csdn.net/tonton/archive/2004/08/01/58198.aspx
'版权:读者可以把本程序使用于任何用途,如要刊登、转载,请保留以上版权信息!
'------------------------------------------------------------------------------------

Const NODE_ELEMENT = 1
Const NODE_TEXT = 3

Class RegistryObject

Private mDom

Public Path '注册表路径
Public Encoding '注册表编码
Public DefaultValue '在读取键值时,如果子键不存在而返回的默认值

Private Sub Class_Initialize()
DefaultValue = Empty
Encoding = "gb2312"
Set mDom = Nothing
End Sub

Private Sub Class_Terminate()
Set mDom = Nothing
End Sub

Public Function NewDom()
Set NewDom = Server.CreateObject("Microsoft.XMLDOM")
End Function

Private Property Get Dom()
Dim Nde
If mDom Is Nothing Then
Set mDom = NewDom()
mDom.async = False
mDom.Load Path

If mDom.parseError.errorCode = &H800C0006 Then '文件未找到
Initial
ElseIf mDom.parseError <> 0 Then
Exit Property
End If
End If

Set Dom = mDom
End Property

Public Function Initial()
Dim Nde
Set mDom = NewDom()
With mDom
Set Nde = .createProcessingInstruction("xml", "version='1.0' encoding='" & Encoding & "'")
.appendChild (Nde)
Set Nde = .createElement("Registry")
.appendChild (Nde)
End With
mDom.Save Path
End Function

Public Function CreateChannel(Channel)
With Dom
Set CreateChannel = .selectSingleNode("//" & Channel)
If CreateChannel Is Nothing Then
Set CreateChannel = .createNode(NODE_ELEMENT, Channel, "")
.documentElement.appendChild (CreateChannel)
.Save Path
End If
End With
End Function

Public Function GetAllChannels()
Dim Result
Dim Nde, i
With Dom
With .documentElement.childNodes
If .length = 0 Then
Result = Split("", 0)
Else
ReDim Result(.length - 1)
For i = 0 To .length - 1
Result(i) = .Item(i).nodeName
Next
End If
End With
End With
GetAllChannels = Result
End Function

Public Function DeleteChannel(Channel)
Dim Selection
With Dom
Set Selection = .selectNodes("//" & Channel)
Selection.RemoveAll
.Save Path
End With
End Function

Public Function CreateSection(Channel, Section)
Dim Nde
With Dom
Set Nde = .selectSingleNode("//" & Channel & "/" & Section)
If Nde Is Nothing Then
Set Nde = .selectSingleNode("//" & Channel)
If Nde Is Nothing Then
Set Nde = .createNode(NODE_ELEMENT, Channel, "")
.documentElement.appendChild (Nde)
End If

Set CreateSection = .createNode(NODE_ELEMENT, Section, "")
Nde.appendChild (CreateSection)

.Save Path
End If
End With
End Function

Public Function GetAllSections(Channel)
Dim Result
Dim Nde, i
With Dom
Set Nde = .selectSingleNode("//" & Channel)
If Not Nde Is Nothing Then
With Nde.childNodes
If .length = 0 Then
Result = Split("", 0)
Else
ReDim Result(.length - 1)
For i = 0 To .length - 1
Result(i) = .Item(i).nodeName
Next
End If
End With
Else
Result = Split("", 0)
End If
End With
GetAllSections = Result
End Function

Public Function ClearAllSections(Channel)
Dim Selection
With Dom
Set Selection = .selectNodes("//" & Channel)
Selection.RemoveAll
.Save Path
End With
End Function

Public Function DeleteSection(Channel, Section)
Dim Selection
With Dom
Set Selection = .selectNodes("//" & Channel & "/" & Section)
Selection.RemoveAll
.Save Path
End With
End Function

Public Function GetAllKeys(Channel, Section)
Dim Result
Dim Nde, i
With Dom
Set Nde = .selectSingleNode("//" & Channel & "/" & Section)
If Not Nde Is Nothing Then
With Nde.childNodes
If .length = 0 Then
Result = Split("", 0)
Else
ReDim Result(.length - 1)
For i = 0 To .length - 1
Result(i) = .Item(i).nodeName
Next
End If
End With
Else
Result=Split("", 0)
End If
End With
GetAllKeys = Result
End Function

Public Sub SaveValue(Channel, Section, Key, Value)
Dim Nde, Nde2, ItemNode
With Dom
Set ItemNode = .selectSingleNode("//" & Channel & "/" & Section & "/" & Key)
If ItemNode Is Nothing Then
Set Nde = .selectSingleNode("//" & Channel)
If Nde Is Nothing Then
Set Nde = .createNode(NODE_ELEMENT, Channel, "")
.documentElement.appendChild (Nde)
End If

Set Nde2 = Nde.selectSingleNode("//" & Section)
If Nde2 Is Nothing Then
Set Nde2 = .createNode(NODE_ELEMENT, Section, "")
Nde.appendChild (Nde2)
End If

Set ItemNode = .createNode(NODE_ELEMENT, Key, "")
Nde2.appendChild (ItemNode)
End If
ItemNode.Text = Value

.Save Path
End With
End Sub

Public Function ReadValue(Channel, Section, Key)
Dim Nde
With Dom
Set Nde = .selectSingleNode("//" & Channel & "/" & Section & "/" & Key)
If Nde Is Nothing Then
ReadValue = DefaultValue
Else
ReadValue = Nde.Text
End If
End With
End Function

Public Function GetAllValues(Channel, Section)
Dim Result
Dim Nde, i
With Dom
Set Nde = .selectSingleNode("//" & Channel & "/" & Section)
If Not Nde Is Nothing Then
With Nde.childNodes
If .length = 0 Then
Result = Split("", 0)
Else
ReDim Result(.length - 1)
For i = 0 To .length - 1
Set Result(i)=New RegistryKey
Result(i).Name=.Item(i).nodeName
Result(i).Value=.Item(i).Text
Next
End If
End With
Else
Result = Split("", 0)
End If
End With
GetAllValues = Result
End Function
End Class

Class RegistryKey
Public Name
Public Value
End Class
%>





相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...