中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 16:05
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用VBS的regread方法列出注册表RUN项下所有的值? 查看 1,048 回复 14
楼 主 如何用VBS的regread方法列出注册表RUN项下所有的值? 发表于 2007-08-31 18:06 ·  中国 广东 广州 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
如题
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2 发表于 2007-08-31 19:16 ·  中国 广东 广州 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
沉了,沉了~~
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
3 发表于 2007-08-31 19:35 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
RegRead主要是用来读取注册表中主键的默认值或键值的数据

你觉得能有办法麽?
4 发表于 2007-08-31 19:43 ·  中国 广东 广州 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
不好意思,似乎问了蠢问题了,请见谅。
那VBS有什么方法能实现我的要求呢?
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
5 发表于 2007-08-31 20:02 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
我觉得没有直接的方法……
6 发表于 2007-08-31 20:22 ·  中国 广东 广州 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
哦,谢谢.
问个不相干的问题。批处理中有转义字符,在VBS中应该如何表示呢?比如我想向某
文本写入这样的语句:
writefile.WriteLine "set WSH=CreateObject("wscript.shell")"
怎样表达才是正确的?
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
7 发表于 2007-08-31 20:23 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
VBS只有"需要转义为""
8 发表于 2007-08-31 20:30 ·  中国 广东 广州 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
能否给个例子?比如:

Dim fso,writefile
Set fso=CreateObject("Scripting.FileSystemObject")
Set writefile=fso.OpenTextFile("Login.vbs",2,true)
writefile.WriteLine "Dim WSH"
writefile.WriteLine "set WSH=CreateObject("wscript.shell")"

其中的writefile.WriteLine "set WSH=CreateObject("wscript.shell")"怎样写才是正确的?
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
9 发表于 2007-08-31 21:22 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
1.别忘记了WMI:

Dim strPath,x,strOut
Dim arrValueNames
Dim oReg

Const HKLM = &H80000002

strPath = "Software\Microsoft\Windows\CurrentVersion\Run"
Set oReg = GetObject("Winmgmts:\root\default:StdRegProv")
oReg.EnumValues HKLM,strPath,arrValueNames
For Each x In arrValueNames
strOut = strOut & x & vbCrLf
Next
WScript.Echo strOut

2:注意引号中的引号,可以尝试把中间的两个引号用chr(34)来替换。例如:
writefile.WriteLine "set WSH=CreateObject(" & chr(34) & "wscript.shell" & chr(34) & ")"
10 发表于 2007-08-31 21:25 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
另外,如果用BAT的话可以参考 利用WMIC读取注册表
11 发表于 2007-08-31 21:28 ·  中国 广东 广州 电信
高级用户
★★
我思故我在
积分 512
发帖 228
注册 2007-01-21 10:31
19年会员
UID 77225
性别 男
状态 离线
实在非常感谢3742668,初学者总有一堆问题。^_^
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
12 发表于 2007-08-31 21:30 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
TO:3742668
可不可以把它的键值也读出来呢?
13 发表于 2007-08-31 21:31 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
writefile.WriteLine "set WSH=CreateObject(“"wscript.shell”")"

不喜欢chr……
14 发表于 2007-08-31 21:57 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
Originally posted by jmz573515 at 2007-8-31 21:30:
TO:3742668
可不可以把它的键值也读出来呢?


读当然可以……
不过不同类型还要用不同的方法=。=
15 发表于 2007-08-31 21:58 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
Originally posted by jmz573515 at 2007-8-31 21:30:
TO:3742668
可不可以把它的键值也读出来呢?

有了键名,再用RegRead或GetStringValue不就得到了一切?
论坛跳转: