仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2488|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网页设计用VBScript完成对Windows注册表的修正

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。vbscript|window|注册表   赫赫有名的WSH传闻过吗? 它就是Windows Script Host的缩写模式,WSH是Windows平台的剧本指令,它的功效非常壮大,而且它仍是使用语法布局复杂、易学易用且功效壮大的JScript和VBScript剧本言语,来完成其出色的功效的,除本文引见的修正注册表以外,它还可以会见Excel文件,也能与收集沟通,固然它最大的优势莫过于它能与操作体系沟通,而修正注册表只是它与操作体系沟通的冰山一角。恰是它有如斯诸多的长处与适用性,正倍受良多Windows用户的喜爱,本文就为人人引见一二,让列位领略一下WSH的风度。
用VBScript编写的WSH法式文件的扩大名为.vbs,该剧本法式在窗口界面是由wscript.exe文件注释履行的,在字符界面是由cscript.exe文件注释履行的,号令格局为:cscript filename.vbs
 
创立对象
用VBScript修正注册表,必需先创立一个能于操作体系沟通的对象,再使用该对象的各类办法对注册表停止操作,创立这个对象的办法和格局以下:
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
上述这些代码就创立了一个能与操作体系沟通的对象OperationRegistry
 
对象的办法
有了以上这个对象,其实不等于就可以即刻对注册表停止操作,咱们还必需弄清该对象对注册表停止操作的几种主要办法.
1.对注册表的读操作RegRead
2.对注册表的写操作RegWrite
3.对注册表的删操作RegDelete
增补一点,WSH还有两个通用的办法:
WScript.Echo()用来显示一串文本信息,相当于VB中的MsgBox()。
Wscript.Quit()用来加入VBScript法式。
 
办法的参数
关于以上三种操作RegRead,RegWrite,RegDelete都需求带参数停止,而且这些操作的参数的个数和模式又不尽不异,上面我就把它们的一个配合且必不成少的参数讲一下:
该参数可称作是"途径参数",它包含根键,主键途径和键值,各局部暗示的办法以下:
根键:
根键有两种暗示办法。
办法一:直接用它在注册表中的字符串来暗示,如:
HKEY_CLASSES_ROOT,HKEY_CURRENT_USER等
办法二:用缩写的四个字母来暗示,前两个为HK,后两个即为根键单词的首字母。如:
根键HKEY_CLASSES_ROOT暗示为:HKCR, 根键HKEY_CURRENT_USER可暗示为:HKCU等。
主键途径:
主键途径就是方针键在注册表中的主键地位,各个主键之间用"\"符分离隔。如:"Software\Microsoft\Windows\CurrentVersion\Policies\"
键值:
键值参数直接接在主键途径以后。例如一个完全的途径以下所示:
"HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\NoRun"
 
办法详解
1、RegRead操作详解
读操作RegRead次要是用来读取注册表中主键的默许值或键值的数据,咱们可以将读得的数据送到响应的变量中,再使用VB中的MsgBox()函数将该数据显示出来,这就到达了读取注册表中数据的目标(也能够使用对象OperationRegistry的办法Popup()将读取的数据送至屏幕), 例如:
`read.vbs(将以下代码存为read.vbs文件)
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
Dim Read_Data1,Read_Data2
Read_Data1=OperationRegistry.RegRead("HKCR\.xxf\")
`读取根键HKEY_CLASSES_ROOT之下的.xxf主键的默许值,并将该数据送至变量Read_Data1
Read_Data2=OperationRegistry.RegRead("HKCR\.xxf\value")
`读取.xxf主键之下的value键值的数据,并将该数据送至变量Read_Data2
MsgBox("Default="&Read_Data1&" value="&Read_Data2)
`将读取的数据显示出来
2、RegWrite操作详解
写操作RegWrite次要是用来在注册表中新建主键或键值,并要付与给它们一个初始值,该操作一样可以对注册表中以存在的主键或键值停止数据的修正,因而写操作的参数布局就比读操作要庞杂一些,它不但要途径参数,还要一个初始值和类型参数.
先来看初始值参数,该参数关于写操作来讲是必不成少的,它可觉得空(null)但却不克不及免却。在新建主键时,初始值参数就赋给了该主键的默许值,在新建键值时,初始值参数就成了新建键值的初始数据.而初始值的类型,则是由类型参数决意的.类型次要有以下三种:
(1)REG_SZ:字符型.该类型为缺省类型
(2)REG_DWORD:双字节型.
(3)REG_BINARY:二进制型.
以上三品种型第1种和第2种用得最多,第3品种型在某些场所可以用第2种加以替换,这三品种型的赋值办法以下:
关于REG_SZ型:直接用字符串付与,如"text","string"等
关于REG_DWORD型和REG_BINARY型则有两种赋值体例
i)直接用十进制的数暗示,如:0,1等.
ii)用十六进制的数暗示,如:0x12,0xff等. 看例:
`write.vbs
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
Default=OperationRegistry.RegRead("HKCR\")
`获得一个空值 (null)
 
OperationRegistry.RegWrite "HKCR\.xxf\",Default
`在根键HKEY_CLASSES_ROOT之下新建主键.xxf,并置其默许值为空
 
OperationRegistry.RegWrite "HKCR\.xxf\","xxffile"
`在根键HKEY_CLASSES_ROOT之下新建主键.xxf,并置其默许值为"xxffile"
 
OperationRegistry.RegWrite "HKCR\.xxf\value1","string"
`在主键.xxf之下新建一个字符串型键值value1,并置其初始值为"string"
 
OperationRegistry.RegWrite "HKCR\.xxf\value2",1,"REG_DWORD"
`在主键.xxf之下新建一个REG_DWORD型键值value2,并置其初始值为1
 
OperationRegistry.RegWrite "HKCR\.xxf\value3",0Xff,"REG_BINARY"
`在主键.xxf之下新建一个二进制型键值value3,并置其初始值为十六进制的ff
 
3、RegDelete操作详解
删除操作RegDelete次要是用来删除注册表中已存在的主键或键值,该操作是一种极为风险的操作,它能将主键或键值绝不留情的在注册表中“砍失落”,不管该键值上面有多主要的数据,它都能畅行无阻,因而在利用该操作时务必当心。
删除操作的参数模式与读操作的参数模式几近完整不异,只是有一点小小的区分,那就是删除操作不需求将操作的前往值送给某一变量,例如:
`delete.vbs
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegRead("HKCR\.xxf\value")
`删除.xxf主键之下的value键值
OperationRegistry.RegRead("HKCR\.xxf\")
`删除根键HKEY_CLASSES_ROOT之下的.xxf主键
强调一点,不要更改注册表中已存在的主键或键值,更不要将它们删除,由于对注册表停止了不妥的写操作或删操作,情形严重的会招致体系溃散!假如你真想这么做,那就请你作好注册表的备份。
 
使用实例
1、读本机“盘算机名”
`ReadComputerName.vbs
Dim ReadComputerName
Set ReadComputerName=WScript.CreateObject("WScript.Shell")
Dim ComputerName,RegPath
RegPath="HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName"
ComputerName=ReadComputerName.RegRead(RegPath)
MsgBox("盘算机名为"&ComputerName)
2、埋没快捷体例图标上的小箭头
`Hidden.vbs
Dim HiddenArrowIcon
Set HiddenArrowIcon=WScript.CreateObject("WScript.Shell")
Dim RegPath1,RegPath2
RegPath1="HKCR\lnkfile\IsShortCut"
RegPath2="HKCR\piffile\IsShortCut"
HiddenArrowIcon.RegDelete(RegPath1)
HiddenArrowIcon.RegDelete(RegPath2)
3、改革“入手下手”菜单
`ChangeStartMenu.vbs
Dim ChangeStartMenu
Set ChangeStartMenu=WScript.CreateObject("WScript.Shell")
RegPath="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\"
Type_Name="REG_DWORD"
Key_Data=1
 
StartMenu_Run="NoRun"
StartMenu_Find="NoFind"
StartMenu_Close="NoClose"
 
Sub Change(Argument)
ChangeStartMenu.RegWrite RegPath&Argument,Key_Data,Type_Name
MsgBox("Success!")
End Sub
 
Call Change(StartMenu_Run) `禁用“入手下手”菜单中的“运转”功效
Call Change(StartMenu_Find) `禁用“入手下手”菜单中的“查找”功效
Call Change(StartMenu_Close) `禁用“入手下手”菜单中的“封闭体系”功效
4、向Windows中添加自启动法式
该法式能在开机时主动运转。
`AddAutoRunProgram.vbs
`假定该法式在c:\myfile文件夹中,文件名为autorun.exe
Dim AutoRunProgram
Set AutoRunProgram=WScript.CreateObject("WScript.Shell")
RegPath="HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"
Type_Name="REG_SZ"
Key_Name="AutoRun"
Key_Data="C:\Myfile\autorun.exe"
`该自启动法式的全途径文件名
AutoRunProgram.Write RegPath&Key_Name,Key_Data,Type_Name
`在启动组中添加自启动法式autorun.exe
MsgBox("Success!")
  源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多. 纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码
第二个灵魂 该用户已被删除
沙发
发表于 2015-2-16 01:02:30 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-3-1 09:20:01 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
兰色精灵 该用户已被删除
地板
发表于 2015-3-6 23:56:38 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
金色的骷髅 该用户已被删除
5#
发表于 2015-3-7 23:37:05 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
变相怪杰 该用户已被删除
6#
发表于 2015-3-10 19:23:44 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-20 02:28:29 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
莫相离 该用户已被删除
8#
发表于 2015-3-27 23:09:26 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
只想知道 该用户已被删除
9#
发表于 2015-4-7 13:42:05 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
蒙在股里 该用户已被删除
10#
发表于 2015-4-7 17:07:00 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
admin 该用户已被删除
11#
发表于 2015-4-11 07:10:03 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
柔情似水 该用户已被删除
12#
发表于 2015-4-12 17:45:51 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
爱飞 该用户已被删除
13#
发表于 2015-4-15 12:46:10 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
老尸 该用户已被删除
14#
发表于 2015-4-17 21:34:19 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
简单生活 该用户已被删除
15#
发表于 2015-4-19 12:19:46 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
小妖女 该用户已被删除
16#
发表于 2015-4-26 04:43:18 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
小女巫 该用户已被删除
17#
发表于 2015-4-26 21:46:30 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
若天明 该用户已被删除
18#
发表于 2015-5-1 06:13:51 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
飘飘悠悠 该用户已被删除
19#
发表于 2015-6-25 22:10:08 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
活着的死人 该用户已被删除
20#
发表于 2015-6-28 19:31:09 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 17:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表