Board logo

标题: 如何用VBS的regread方法列出注册表RUN项下所有的值? [打印本页]

作者: qinbuer     时间: 2007-8-31 18:06    标题: 如何用VBS的regread方法列出注册表RUN项下所有的值?

如题
作者: qinbuer     时间: 2007-8-31 19:16
沉了,沉了~~
作者: slore     时间: 2007-8-31 19:35
RegRead主要是用来读取注册表中主键的默认值或键值的数据

你觉得能有办法麽?
作者: qinbuer     时间: 2007-8-31 19:43
不好意思,似乎问了蠢问题了,请见谅。
那VBS有什么方法能实现我的要求呢?
作者: slore     时间: 2007-8-31 20:02
我觉得没有直接的方法……
作者: qinbuer     时间: 2007-8-31 20:22
哦,谢谢.
问个不相干的问题。批处理中有转义字符,在VBS中应该如何表示呢?比如我想向某
文本写入这样的语句:
writefile.WriteLine "set WSH=CreateObject("wscript.shell")"
怎样表达才是正确的?
作者: slore     时间: 2007-8-31 20:23
VBS只有"需要转义为""
作者: qinbuer     时间: 2007-8-31 20:30
能否给个例子?比如:

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")"怎样写才是正确的?
作者: 3742668     时间: 2007-8-31 21:22
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) & ")"
作者: 3742668     时间: 2007-8-31 21:25
另外,如果用BAT的话可以参考 利用WMIC读取注册表
作者: qinbuer     时间: 2007-8-31 21:28
实在非常感谢3742668,初学者总有一堆问题。^_^
作者: jmz573515     时间: 2007-8-31 21:30
TO:3742668
可不可以把它的键值也读出来呢?
作者: slore     时间: 2007-8-31 21:31
writefile.WriteLine "set WSH=CreateObject(“"wscript.shell”")"

不喜欢chr……
作者: slore     时间: 2007-8-31 21:57


  Quote:
Originally posted by jmz573515 at 2007-8-31 21:30:
TO:3742668
可不可以把它的键值也读出来呢?

读当然可以……
不过不同类型还要用不同的方法=。=
作者: 3742668     时间: 2007-8-31 21:58


  Quote:
Originally posted by jmz573515 at 2007-8-31 21:30:
TO:3742668
可不可以把它的键值也读出来呢?

有了键名,再用RegRead或GetStringValue不就得到了一切?