手机
当前位置:查字典教程网 >脚本专栏 >vbs >用vbs实现配置无人登录计算机时使用的屏幕保护程序
用vbs实现配置无人登录计算机时使用的屏幕保护程序
摘要:问:您好,脚本专家!我最近下载了你们的“脚本中心”屏幕保护程序,当有人登录计算机时,它运行起来棒极了。但是无人登录时,计算机却使用其它屏幕保...

问:

您好,脚本专家!我最近下载了你们的“脚本中心”屏幕保护程序,当有人登录计算机时,它运行起来棒极了。但是无人登录时,计算机却使用其它屏幕保护程序。如何让计算机在无人登录时也使用“脚本中心”屏幕保护程序?

--RF

答:

您好,RF。您知道,我们遇到过这种情况,您可能在设法欺骗这些老脚本专家们。举个例子来说,我们怎么知道您希望无人登录计算机时运行的屏幕保护程序就是我们的屏幕保护程序?也许您只是奉承脚本专家,好让脚本专家回答您的问题。回答完问题后,您就会把我们甩掉,安装其它一些与脚本编写有关的屏幕保护程序作为默认屏幕保护程序。RF啊RF:您真的认为脚本专家头脑如此简单愿意受用这样的假意恭维吗?

嗯,您是该这样认为,因为我们确实如此:

复制代码 代码如下:

ConstHKEY_USERS=&H80000003

strComputer="."

SetobjReg=GetObject("winmgmts:"&strComputer&"rootdefault:StdRegProv")

strKeyPath=".DefaultControlPanelDesktop"

ValueName="SCRNSAVE.EXE"

strValue="C:WINDOWSSystem32ScriptCenter.scr"

objReg.SetStringValueHKEY_USERS,strKeyPath,ValueName,strValue

正如您所看到的,这是一个用于更改注册表的WMI脚本。它与我们过去为您展示的许多其它注册表修改脚本非常相似,但有一处特殊更改。在以前的脚本中,我们总是先定义一个常量,告诉脚本我们要处理HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE注册表配置单元。这样做有充分的理由:我们希望将所做的一切更改都应用于当前用户或计算机本身。不过,请注意此脚本的第一行:

ConstHKEY_USERS=&H80000003

秘密就在这里:这一次我们要处理HKEY_USERS注册表配置单元。除了其它用途外,HKEY_USERS配置单元为您提供了这样一个场所:在其中配置的设置可应用于登录到计算机的任何用户,而不仅仅是某一特定的用户。换言之,如果您使用HKEY_USERS配置屏幕保护程序,该屏幕保护程序便是默认屏幕保护程序,会应用于登录到计算机的任何新用户。(除非用户明确配置其它屏幕保护程序,否则会继续应用默认屏幕保护程序。)同样,无人登录计算机时,也会使用此默认屏幕保护程序。

酷吧?顺便提一下,您还可以使用该注册表配置单元配置显示在登录屏幕上的墙纸;只需将注册表值HKEY_USERS.DefaultControlPanelDesktopWallpaper设置为相应的文件路径即可。类似下面的代码:

复制代码 代码如下:

ConstHKEY_USERS=&H80000003

strComputer="."

SetobjReg=GetObject("winmgmts:"&strComputer&"rootdefault:StdRegProv")

strKeyPath=".DefaultControlPanelDesktop"

ValueName="Wallpaper"

strValue="C:WINDOWSSystem32ScriptCenter.bmp"

objReg.SetStringValueHKEY_USERS,strKeyPath,ValueName,strValue

定义常量后,接下来要连接本地计算机上的WMI服务(虽然此脚本在远程计算机上的运行效果同样不错)。然后,为下面三个不同的变量赋值:

•strKeyPath-HKEY_USERS内注册表项的路径。在本例中,路径为.DefaultControlPanelDesktop。

•ValueName-要更改的注册表值的名称(SCRNSAVE.EXE)。

•strValue-要赋给SCRNSAVE.EXE的新值。在此脚本中,该值是此屏幕保护程序的完整路径。

最后,我们要调用SetStringValue方法(将常量HKEY_USERS和这三个变量一起作为参数传递),这样就大功告成了:

objReg.SetStringValueHKEY_USERS,strKeyPath,ValueName,strValue

现在,如果您注销后再等几分钟,就会运行“脚本中心”屏幕保护程序。(假设注册表值ScreenSaveActive设置为1;如果设置为0,则表示禁用该屏幕保护程序。)

知道这有多简单了吧?噢,不,我们不是说脚本(虽然脚本也非常简单);我们是说要获得问题的答案有多简单,当然,您提问题的措辞很对路。就象常说的那句话,谁都爱听恭维话。

【用vbs实现配置无人登录计算机时使用的屏幕保护程序】相关文章:

用vbs实现不死帐号的代码

vbs中关于计算机名的相关讨论

运行同一目录下的可执行程序的VBS代码

vbs实现的定时提醒你休息的脚本

用vbscript实现从后到前阅读一个文本文件

用vbs实现确定是否安装了某个特定的补丁

iisweb.vbs iis网站管理脚本使用介绍

用vbs实现的exe2swf工具脚本代码

用vbs实现按创建日期的顺序列出一个文件夹中的所有文件

用vbscript实现从文本文件中删除所有重复行的代码

精品推荐
分类导航