精华内容
下载资源
问答
  • 今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下
  • 上图是运行VBS脚本报错的对话框。 然后我是循着它的提示,一个一个地找到了第1行的第12个字符,发现是个空格符,之后我把这个空格删去了,再运行脚本,发现竟然运行成功了。后来经过我的几次尝试,总结出了以下规律...

    今天小编针对这个问题折腾了小半天,最终还是发现了问题所在:
    在这里插入图片描述
    上图是运行VBS脚本报错的对话框。

    然后我是循着它的提示,一个一个地找到了第1行的第12个字符,发现是个空格符,之后我把这个空格删去了,再运行脚本,发现竟然运行成功了。后来经过我的几次尝试,总结出了以下规律:
    大多数人写VBS脚本,都是从网上直接复制代码的,这个情况如果代码本身不存在语法错误,但是仍然报错“无效字符”的话,大概率是脚本中的空格为全角空格,而在vbs中全角空格是被当作非法/无效字符的,所以解决办法是换成半角空格,或者将其删除。

    展开全文
  • 我的本地是.net 4.x的 运行出现这个 debug看的是 这个出现的问题,怎么解决,除了下载..net3.5 CreateObject("System.Collections.ArrayList") 0.0.
  • Vbs 运行外部程序

    千次阅读 2019-08-14 17:23:13
    **Vbs 只提供了编程的一个基本框架,用户可以使用 Vbs 来定义变量、过程和函数, vbs也提供 了一些内部函数和对象,但是 Vbs 没有提供任何命令来访问 Windows 系统内部的部件 ,但是值 得庆幸的是, Vbs 虽然不能...

    **Vbs 只提供了编程的一个基本框架,用户可以使用 Vbs 来定义变量、过程和函数, vbs也提供
    了一些内部函数和对象,但是 Vbs 没有提供任何命令来访问 Windows 系统内部的部件 ,但是值
    得庆幸的是, Vbs 虽然不能自己完成这些任务, 但是它提供了一条极为方便、功能也相当强的
    命令—— CreateObject,这条命令可以访问 windows 系统内安装的所有 com 对象,并且可以调
    用这些部件中存放的命令
    WSH 也就是用来解析 Vbs 的宿主,本身包含了几个个常用对象 :
    1、Scripting.FileSystemObject —> 提供一整套文件系统操作函数
    2、Scripting.Dictionary —> 用来返回存放键值对的字典对象
    3、Wscript.Shell —> 提供一套读取系统信息的函数,如读写注册表、查找指定文件的路
    径、读取 DOS 环境变量,读取链接中的设置
    4、Wscript.NetWork —> 提供网络连接和远程打印机管理的函数 。(其中, 所有 Scripting 对
    象都存放在 SCRRUN.DLL 文件中,所有的 Wscript 对象都存放在 WSHOM.ocx 文件中。)
    现在我们需要的是第三个对象,好了,让我们先连接一下对象看看,在记事本的编辑窗口中输入:

    Option Explicit
    Dim objShell
    Set objShell = CreateObject( “Wscript.Shell ”)
    objShell.Run “notepad ”
    

    说明之一: Set是 Vbs 指令,凡是将一对象引用赋给变量,就需要使用 set关键字 。那么什么是
    对象引用呢? 凡是字符串、数值、布尔值之外的变量都是对象引用 。Objshell 是变量名,可以
    随意修改。
    说明之二: 凡是正确引用的对象,其本身内置有函数和变量,其引用方法为在变量后加
    “. ”,后紧跟其实现功能的函数就可以了。 Objshell.run 的意思就是调用 Wscript.shell 中的运
    行外部程序的函数—— run,notepad是记事本程序的文件名。当然你也可以改成“ calc”,这是
    计算器的文件名, winword 是 word 的文件名,等等吧,所有可执行文件的文件名都可以。但是
    需要注意的是,如果你要执行的可执行文件存放的地方不是程序安装的常用路径,一般情况
    下,需要提供合法的路径名,但是 run 在运行解析时,遇到空格会停止,解决的方法是使用双
    例如:在我的机器上运行 TIM,代码为

    option explicit
    dim objshell
    set objshell = CreateObject("Wscript.Shell")
    objshell.Run"""C:\Program Files (x86)\Tencent\TIM\Bin\TIM.exe"""
    'calc 计算器
    'notpad 记事本
    ' run 在运行解析时,遇到空格会停止,解决的方法是使用双引号:三个引号更好
    

    启动两个程序会如何呢?
    输入如下代码:

    Set objShell = CreateObject( “Wscript.Shell ”)
    objShell.Run “notepad ”
    objShell.Run “calc ”
    

    执行会如何呢? 两个程序基本上同时启动了 。如果我们需要 先启动 notepad再启动 calc 将如何
    呢?很简单 在需要顺序执行的代码后加 , , True 参数就可以了 。
    好了输入代码:

    Set objShell = CreateObject( “Wscript.Shell ”)
    objShell.Run “notepad ” ,,true
    objShell.Run “calc ”
    

    看看执行的结果怎么样吧!
    总结: run函数有三个参数,第一个参数是你要执行的程序的路径,第二个程序是窗口的形
    式,0 是在后台运行; 1 表示正常运行; 2 表示激活程序并且显示为最小化; 3表示激活程序并
    且显示为最大化;一共有 10 个这样的参数我只列出了 4 个最常用的。 第三个参数是表示这个
    脚本是等待还是继续执行,如果设为了 true,脚本就会等待调用的程序退出后再向后执行 。
    其实, run做为函数,前面还 有一个接受返回值的变量 ,一般来说如果 返回为 0,表示成功执
    行,如果不为 0,则这个返回值就是错误代码 ,可以通过这个代码找出相应的错误。**

    展开全文
  • vbs脚本报错无效字符

    千次阅读 2018-12-24 16:32:57
    代码没有问题,总是报这样的错误。问题原因 : 1,字符编码导致的问题。解决如下: 这样的编码就会报错,选择上面的就不会报错。也就是红箭头指示的。  ...

    代码没有问题,总是报这样的错误。问题原因 : 1,字符编码导致的问题。解决如下:

    这样的编码就会报错,选择上面的就不会报错。也就是红箭头指示的。

     

    展开全文
  • 主要介绍了window通过vbs+bat实现自动在后台运行nodejs application,需要的朋友可以参考下
  • vbs注册表操作详解

    千次阅读 2011-11-11 08:56:20
    VBS脚本修改注册表 大名鼎鼎的WSH听说过吗? 它就是Windows Script Host的缩写形式,WSH是Windows平台的脚本指令,它的功能十分强大,并且它还是利用语法结构简单、易学易用且功能强大的JScript和 VBScript脚本语言...
    原址:http://hi.baidu.com/li9861120
    
     
    VBS脚本修改注册表 大名鼎鼎的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,并置其默认值?quot;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!")
    
    实例:
    ①创建主键、创建各类型的键值。 
    ②读取键值并分析键值类型。 
    ③枚举主键及键值。 
    ④判断键或键值是否存在。 
    ⑤查询注册表键的操作权限。 
    ⑥监视注册表根键、主键、键值,当发现变动时提示。 
    复制代码 代码如下:
    '''注册表查询/操作 
    On Error Resume Next 
    Const HKEY_CLASSES_ROOT = &H80000000'''设置注册表5大根键,HKCR-----------① 
    Const HKEY_CURRENT_USER = &H80000001'''HKCU 
    Const HKEY_LOCAL_MACHINE = &H80000002'''HKLM 
    Const HKEY_Users = &H80000003'''HKU 
    Const HKEY_Current_Config = &H80000005'''HKCC 
    Const REG_SZ = 1'''设置注册表键值类型,字符串型---------------------------② 
    Const REG_EXPAND_SZ = 2'''扩展字符串型 
    Const REG_BINARY = 3'''二进制型 
    Const REG_DWORD = 4'''双字节型 
    Const REG_MULTI_SZ = 7'''多字符串型 
    Const KEY_QUERY_VALUE = &H0001'''查询注册表权限,查询数值-----------------③ 
    Const KEY_SET_VALUE = &H0002'''设置数值 
    Const KEY_CREATE_SUB_KEY = &H0004'''创建子项 
    Const DELETE = &H00010000'''删除项值 
    '''-----------------配置环境(路径)----------------------------------------00 
    strComputer = "." 
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") 
    strKeyRoot = HKEY_LOCAL_MACHINE 
    Regpath = "HKEY_LOCAL_MACHINE" 
    strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Run" 
    WshSHell.popup "设置路径【HKLM\Software\Microsoft\Windows\CurrentVersion\Run】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------创建主键"REG_KEY_SZ"----------------------------------01 
    strKeyPathNew = "Software\Microsoft\Windows\CurrentVersion\Run\User_baomaboy\"'''注意因为是新建主键,要多加个“\” 
    oReg.CreateKey strKeyRoot, strKeyPathNew 
    WshSHell.popup "创建主键【HKLM\Software\Microsoft\Windows\CurrentVersion\Run\User_baomaboy\】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------创建字符串值"REG_SZ"----------------------------------02 
    strValueName="1字符串名" 
    strValue="字符串值" 
    oReg.SetStringValue strKeyRoot, strKeyPath, strValueName, strValue 
    WshSHell.popup "创建字符串【HKLM\Software\Microsoft\Windows\CurrentVersion\Run\1字符串名】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------创建双字节值"REG_DWORD"-------------------------------- 
    strValueName="2双字节名" 
    strValue=1 
    oReg.SetDWORDValue strKeyRoot, strKeyPath, strValueName, strValue 
    WshSHell.popup "创建双字节值【HKLM\Software\Microsoft\Windows\CurrentVersion\Run\2双字节名】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------创建多字符串"REG_MULTI_SZ"----------------------------- 
    strValueName="3多字符串名" 
    arrStringValues = Array("QQ25926183", "userbaomaboy","LLKJ", "玲珑科技") 
    oReg.SetMultiStringValue strKeyRoot, strKeyPath, strValueName, arrStringValues 
    WshSHell.popup "创建多字符串【HKLM\Software\Microsoft\Windows\CurrentVersion\Run\3多字符串名】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------创建扩展字符串"REG_EXPAND_SZ"-------------------------- 
    strValueName = "4扩展字符串名" 
    strValue = "%PATHEXT%" 
    oReg.SetExpandedStringValue strKeyRoot, strKeyPath, strValueName, strValue 
    WshSHell.popup "创建扩展字符串【HKLM\Software\Microsoft\Windows\CurrentVersion\Run\4扩展字符串名】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------创建二进制值"REG_BINVRY_SZ"---------------------------- 
    RegPathEr=Regpath&"\Software\Microsoft\Windows\CurrentVersion\Run\5二进制值" 
    WshSHell.RegWrite RegPathEr,1,"REG_BINARY" 
    WshSHell.popup "创建二进制值【HKLM\Software\Microsoft\Windows\CurrentVersion\Run\5二进制值】成功"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 读取字符串值"REG_VALUE"------------------------------- 
    oReg.GetStringValue strKeyRoot, strKeyPath, "1字符串名", strRunCommand 
    WshSHell.popup "读取字符串值:"&vbcrlf&vbcrlf&strRunCommand&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 读取双字节值"REG_DWORD"------------------------------- 
    oReg.GetDWORDValue strKeyRoot, strKeyPath, "2双字节名", strRunCommand 
    WshSHell.popup "读取双字节值:"&vbcrlf&vbcrlf&strRunCommand&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 读取多字符串值"REG_MULTI_SZ"-------------------------- 
    oReg.GetMultiStringValue strKeyRoot, strKeyPath, "3多字符串名", arrValues 
    For Each strValue In arrValues 
    DuoString=DuoString&vbcrlf&strValue 
    Next 
    WshSHell.popup "读取多字符串值:"&vbcrlf&vbcrlf&DuoString&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 读取扩展字符串"REG_EXPAND_SZ"------------------------- 
    oReg.GetExpandedStringValue strKeyRoot, strKeyPath, "4扩展字符串名", strValue 
    WshSHell.popup "读取扩展字符串值:"&vbcrlf&vbcrlf&strValue&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 读取二进制值"REG_BINVRY_SZ"---------------------------- 
    oReg.GetBinaryValue strKeyRoot, strKeyPath, "5二进制值", strValue 
    For i = lBound(strValue) to uBound(strValue) 
    ErString=ErString&strValue(i) 
    Next 
    WshSHell.popup "读取二进制值:"&vbcrlf&vbcrlf&ErString&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 枚举主键"SUB_KEY"-------------------------------------- 
    oReg.EnumKey strKeyRoot, strKeyPath, arrSubKeys 
    For Each subkey In arrSubKeys 
    ArrSubKeyStr=ArrSubKeyStr&vbcrlf&subkey 
    Next 
    WshSHell.popup "枚举主键:"&vbcrlf&vbcrlf&ArrSubKeyStr&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 枚举键值和键值类型"KEY_Value_Types"-------------------- 
    oReg.EnumValues strKeyRoot, strKeyPath, arrValueNames, arrValueTypes 
    For i=0 To UBound(arrValueNames) 
    If Len(arrValueNames(i)) > 0 Then 
    Select Case arrValueTypes(i) 
    Case REG_SZ ValueType=" >>>是:字符串值" 
    Case REG_EXPAND_SZ ValueType=" >>>是:扩展字符串值" 
    Case REG_BINARY ValueType=" >>>是:二进制值" 
    Case REG_DWORD ValueType=" >>>是:双字节值" 
    Case REG_MULTI_SZ ValueType=" >>>是:多字符串值" 
    End Select 
    arrValueStr=arrValueStr&vbcrlf&arrValueNames(i)&ValueType 
    End If 
    Next 
    WshSHell.popup "枚举键值和类型:"&vbcrlf&vbcrlf&arrValueStr&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 枚举键值和键值内容一"KEY_Value_Contenct"---------------- 
    oReg.EnumValues strKeyRoot, strKeyPath, arrValueNames, arrValueTypes 
    For i=0 To UBound(arrValueNames) 
    If Len(arrValueNames(i)) > 0 Then 
    oReg.GetStringValue strKeyRoot,strKeyPath,arrValueNames(i),strValue'''适应于字符串型 
    ValueStr=ValueStr&vbcrlf&arrValueNames(i)&vbcrlf&strValue 
    end if 
    Next 
    WshSHell.popup "枚举键值和内容一:"&vbcrlf&vbcrlf&ValueStr&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 枚举键值和键值内容二"KEY_Value_Contenct"---------------- 
    oReg.EnumValues strKeyRoot, strKeyPath, arrValueNames, arrValueTypes 
    i=0 
    For Each strValue in arrValueNames 
    If Len(strValue) > 0 Then 
    i=i+1 
    oReg.GetStringValue strKeyRoot,strKeyPath,strValue,strRunCommand'''适应于字符串型 
    intLength = Len(strRunCommand) 
    if intLength > 35 then'''美化回显,(可再加代码判路径是否包含断汉字) 
    strRunCommand = Left(strRunCommand, 20)&"……"&Right(strRunCommand, 13) 
    end if 
    StrRoot= i&".【"&strValue&"】"&vbCRLF&" "&strRunCommand 
    ARoot=ARoot&vbCRLF&StrRoot 
    End If 
    Next 
    WshSHell.popup "枚举键值和内容二:"&vbcrlf&vbcrlf&ARoot&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 删除键值"REG_VALUE"------------------------------------- 
    oReg.DeleteValue strKeyRoot, strKeyPath, "5二进制值" 
    WshSHell.popup "删除键值:"&vbcrlf&vbcrlf&Regpath&"\"&strKeyPath&"\5二进制值"&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''----------------- 删除主键"SUB_KEY"--------------------------------------- 
    oReg.DeleteKey strKeyRoot, strKeyPathNew 
    WshSHell.popup "删除主键:"&vbcrlf&vbcrlf&Regpath&"\"&strKeyPathNew&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----------------判断键值是否存在----------------------------------------- 
    strValue="""病毒""" 
    oReg.GetStringValue strKeyRoot,strKeyPath,strValue,strRunCommand 
    If IsNull(strRunCommand) Then 
    WshSHell.popup strValue&"此注册表键值不存在."&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    Else 
    WshSHell.popup strValue&"注册表中存在此键值."&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    End If 
    '''----------------- 检查注册表访问权限"Check Up Extent Of Power"------------ 
    oReg.CheckAccess strKeyRoot, strKeyPath, KEY_QUERY_VALUE, bHasAccessRight 
    If bHasAccessRight = True Then 
    aaa="可以查询数值" 
    Else 
    aaa="不可查询数值" 
    End If 
    oReg.CheckAccess strKeyRoot, strKeyPath, KEY_SET_VALUE, bHasAccessRight 
    If bHasAccessRight = True Then 
    bbb="可以设置数值" 
    Else 
    bbb="不可设置数值" 
    End If 
    oReg.CheckAccess strKeyRoot, strKeyPath, KEY_CREATE_SUB_KEY, bHasAccessRight 
    If bHasAccessRight = True Then 
    ccc="可以创建主键" 
    Else 
    ccc="不可创建主键" 
    End If 
    oReg.CheckAccess strKeyRoot, strKeyPath, DELETE, bHasAccessRight 
    If bHasAccessRight = True Then 
    ddd="可以删除键值" 
    Else 
    ddd="不可删除键值" 
    End If 
    WshSHell.popup "注册表访问权限:"&vbcrlf&vbcrlf&Regpath&"\"&strKeyPath&vbcrlf&vbcrlf&aaa&vbcrlf&bbb&vbcrlf&ccc&vbcrlf&ddd&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&"5 秒钟后本窗口将自动关闭!", 5, "内容", 0 + 64 
    '''-----恢复注册表原样-------- 
    oReg.DeleteValue strKeyRoot, strKeyPath, "4扩展字符串名" 
    oReg.DeleteValue strKeyRoot, strKeyPath, "3多字符串名" 
    oReg.DeleteValue strKeyRoot, strKeyPath, "2双字节名" 
    oReg.DeleteValue strKeyRoot, strKeyPath, "1字符串名" 
    '''-----------------监视注册表键值"REG_KEY_SZ"------------------------------- 
    '''用以对注册表中HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\1字符串名"分支下的所有更改内容进行监视。 
    'Set wmiServices = GetObject("winmgmts:root/default") 
    'Set wmiSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_") 
    'wmiServices.ExecNotificationQueryAsync wmiSink, _ 
    '"SELECT * FROM RegistryValueChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND " & _ 
    '"KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run' AND ValueName='1字符串名'" 
    'WScript.Echo "开始监视注册表HKLM_Run主键键值的值的变化......" & vbCrLf 
    'While(1) 
    'WScript.Sleep 1000 
    'Wend 
    'Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext) 
    'WScript.Echo ".........注册表改变......" & vbCrLf & _ 
    '"----------监视注册表键值的值变化-----------" & vbCrLf & _ 
    'wmiObject.GetObjectText_() 
    'WScript.Quit(0)'''用作发现修改则提示后退出 
    'End Sub 
    '''-----------------监视注册表主键"REG_SubKey_SZ"----------------------------- 
    '''监视注册表,以发现对 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 的任何更改。 
    'Set wmiServices = GetObject("winmgmts:root/default") 
    'Set wmiSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_") 
    'wmiServices.ExecNotificationQueryAsync wmiSink, _ 
    '"SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND " & _ 
    '"KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run'" 
    'WScript.Echo "开始监视注册表HKLM_Run主键的键值变化......" & vbCrLf 
    'While(1) 
    'WScript.Sleep 1000 
    'Wend 
    'Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext) 
    'WScript.Echo ".........注册表改变......" & vbCrLf & _ 
    '"----------监视注册表主键键值变化-----------" & vbCrLf & _ 
    'wmiObject.GetObjectText_() 
    'WScript.Quit(0)'''用作发现修改则提示后退出 
    'End Sub 
    '''-----------------监视注册表根键"REG_RootKey_SZ"---------------------------- 
    '''监视注册表,以发现对 HKLM 的任何更改。 
    Set wmiServices = GetObject("winmgmts:root/default") 
    Set wmiSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_") 
    wmiServices.ExecNotificationQueryAsync wmiSink, _ 
    "SELECT * FROM RegistryTreeChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND RootPath=''" 
    WScript.Echo "开始监视注册表HKLM根键的所有变化......" & vbCrLf 
    While(1) 
    WScript.Sleep 1000 
    Wend 
    Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext) 
    WScript.Echo ".........注册表改变......" & vbCrLf & _ 
    "----------监视注册表根键所有变化-----------" & vbCrLf & _ 
    wmiObject.GetObjectText_() 
    WScript.Quit(0)'''用作发现修改则提示后退出 
    End Sub
    
    


     

    展开全文
  • 发现问题: 打开.vbs文件的时候报错,提示错误 未结束的字符串常量,错误代码 800A0409,Microsoft VBScript 编译器错误 解决问题: 方法一:在System32搜索栏下搜索“wscript.exe”,进行文件关联。 方法二:把您...
  • 解决VBS文件双击不能运行的问题

    千次阅读 2019-06-26 21:20:40
    文件关联被破坏了,解决办法如下:将下面所有代码复制保存为扩展名是“reg”的文件,即注册表文件,双击运行: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.VBS] @="VBSFile" [HKEY_CLASSES...
  • SecureCRT脚本(VBS)运行

    万次阅读 2018-05-05 23:58:13
    SecureCRT脚本(VBS)运行在SecureCRT运行脚本,自动收发数据监控记录运行状态。参考:示例代码:#$language = "VBScript" #$interface = "1.0" '====本脚本说明:==============================...
  • 1.俺先用一个文件创建了一个自解压的压缩文件,想要解压后自动运行其中的一个vbs。 2. 创建成功,点击解压后应当自动运行其中的那个vbs才对。但是却显示说我的这个vbs脚本,在第三行第一个字符800A004C路径未找到? ...
  • vbs运行需要什么环境?   答:需要windows大环境。vbs的运行还依赖wscript.exe解释器,如同批处理的运行依赖cmd.exe解释器一样。    问题2:  之前写的一个VBS脚本,其主要功能是完成QTP的调用,并打开对应...
  • vbs简介

    千次阅读 2018-09-05 00:49:56
      VBScript简称VBS,是Microsoft微软开发的一门脚本语言,其目的是方便windows管理管理windows操作系统,当然,VBScript同样可以像...先来说下什么是解释器:编程编程,无非就是让电脑运行写的代码对不对?这...
  •  Sheets(1).Select ’**第二次这个地方报错**,报错内容为”远程服务器不存在或不能使用“  Range("A4", Cells(jianche_hang_1, 10)).Select  Selection.Copy .Worksheets(1).Range(&...
  • vbs开机自启

    2015-09-28 15:20:18
    可以通过注册表开机自启(不用知道本文件在哪个位置)
  • Microsoft VBScript 运行时错误 错误 '800a0046' 没有权限
  • 本程序可以实现在QQ上给好友连发消息,作为VBS代码编写的参考,本程序可以设置发送次数和发送间隔时间,易操作。 使用方法:将要发送的内容放入剪贴板(把内容写在记事本中复制一次),选择发送消息的方式,如CTRL+...
  • 出现此类问题大抵是VBS脚本服务在注册表中出错了,原因可能是卸载或安装一些代码不规范的程序引起的。...1.运行regedit命令打开注册表 2.展开[HKEY_CLASSES_ROOT],找到.vbs,修改右边默认值的数据为vbsfile ...
  • 本人小白一枚qwq。求助的主要内容如标题所示。 有问题的计算机于今年年初从win10家庭版升级到了win10专业版,因此需要进行激活...运行代码后(代码来源网络),报错如下图。 即报错如标题所言。(蓝底红字确实比较
  • aspx运行报错:1% 不是有效的 win32 应用程序: aspx环境配置完毕后,运行html成功,但运行aspx就报错,错误提示是"1% 不是有效的 win32 应用程序",英文报%1 is not a valid Win32 application.第一次碰到...
  • Windows下运行python脚本报错“ImportError: No Module named ...”的解决方法
  • 代码如此: dim WSH dim string set WSH = CreateObject...唯独就是不能在VBS里面运行。 很显然问题出在对字符串的解析上。那么这就很奇怪了。难道本地win10家庭版和服务器win2012企业版的VBS对字符串的解析有区别吗?
  • RocketDock1.3.5 绿色 汉化版 完美运行报错 完美解决 "rocketdock had trouble loading your icons last time it was run" 重启无法载入图标,无法运行,丢失图标等问题 原理:延时运行 根据个人情况修改.vbs文件...
  • 写火狐扩展,调用浏览器本地的vbs文件,报错错误:0x800700c1 代码:800700c1 源(null),但是直接鼠标双击打开正常,vbs文件的内容如下: createobject("wscript.shell").run "tortoiseProcScript.bat",0,true ...
  • VBS学习日记(四) 错误处理

    千次阅读 2014-07-15 16:42:12
    Vbs 脚本编程简明教程之错误处理
  • VBS脚本文件不能运行怎么办?

    千次阅读 2019-10-05 07:41:45
    当你在运行一些基于VBS脚本语言的文件时,系统可能报错。这时候可能是你的VBS脚本服务在注册表中出错了,原因可能是卸载或安装一些代码不规范的程序引起的。这里给出无法找到脚本引擎"vbscript"的解决方法: 1)找到...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    测试开发笔记 第一章 测试基础 7 什么是软件测试: 7 ★软件测试的目的、意义:(怎么做好软件测试) 7 3.软件生命周期: 7 第二章 测试过程 8 1.测试模型 8 H模型: 8 V模型 9 2.内部测试 10 ...
  • "vbs shell32 功能调用" ) Select   Case  input1 Case  1 os0.MinimizeAll Case  2 os0.UndoMinimizeALL Case  3 os0.TileHorizontally Case  4 os0....
  • 问题一:aspx运行报错:1% 不是有效的 win32 应用程序  aspx环境配置完毕后,运行html成功,但运行aspx就报错,错误提示是"1% 不是有效的 win32 应用程序",英文报%1 is not a valid Win32 application.第一次碰到...
  • win10无法执行vbs脚本

    2021-08-17 21:00:46
    win10运行不了vbs脚本 1.问题出现原因及其表现方式: 原因:电脑中毒过,导致无法执行vbs脚本。 表现方式:用wscript执行vbs脚本报错(win10的vbs脚本报错所选的程序不能与此文件相关联。请选择其他程序)。 2.解决...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,158
精华内容 863
关键字:

vbs运行报错