用vbs实现配置无人登录计算机时使用的屏幕保护程序
2007-03-25 00:00
387 查看
问:
您好,脚本专家!我最近下载了你们的“脚本中心”屏幕保护程序,当有人登录计算机时,它运行起来棒极了。但是无人登录时,计算机却使用其它屏幕保护程序。如何让计算机在无人登录时也使用“脚本中心”屏幕保护程序?
-- RF
答:
您好,RF。您知道,我们遇到过这种情况,您可能在设法欺骗这些老脚本专家们。举个例子来说,我们怎么知道您希望无人登录计算机时运行的屏幕保护程序就是我们的屏幕保护程序?也许您只是奉承脚本专家,好让脚本专家回答您的问题。回答完问题后,您就会把我们甩掉,安装其它一些与脚本编写有关的屏幕保护程序作为默认屏幕保护程序。RF 啊 RF:您真的认为脚本专家头脑如此简单愿意受用这样的假意恭维吗?
嗯,您是该这样认为,因为我们确实如此:
正如您所看到的,这是一个用于更改注册表的 WMI 脚本。它与我们过去为您展示的许多其它注册表修改脚本非常相似,但有一处特殊更改。在以前的脚本中,我们总是先定义一个常量,告诉脚本我们要处理 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE 注册表配置单元。这样做有充分的理由:我们希望将所做的一切更改都应用于当前用户或计算机本身。不过,请注意此脚本的第一行:
Const HKEY_USERS = &H80000003
秘密就在这里:这一次我们要处理 HKEY_USERS 注册表配置单元。除了其它用途外,HKEY_USERS 配置单元为您提供了这样一个场所:在其中配置的设置可应用于登录到计算机的任何用户,而不仅仅是某一特定的用户。换言之,如果您使用 HKEY_USERS 配置屏幕保护程序,该屏幕保护程序便是默认屏幕保护程序,会应用于登录到计算机的任何新用户。(除非用户明确配置其它屏幕保护程序,否则会继续应用默认屏幕保护程序。)同样,无人登录计算机时,也会使用此默认屏幕保护程序。
酷吧?顺便提一下,您还可以使用该注册表配置单元配置显示在登录屏幕上的墙纸;只需将注册表值 HKEY_USERS\.Default\Control Panel\Desktop\Wallpaper 设置为相应的文件路径即可。类似下面的代码:
定义常量后,接下来要连接本地计算机上的 WMI 服务(虽然此脚本在远程计算机上的运行效果同样不错)。然后,为下面三个不同的变量赋值:
• strKeyPath - HKEY_USERS 内注册表项的路径。在本例中,路径为 .Default\Control Panel\Desktop。
• ValueName - 要更改的注册表值的名称 (SCRNSAVE.EXE)。
• strValue - 要赋给 SCRNSAVE.EXE 的新值。在此脚本中,该值是此屏幕保护程序的完整路径。
最后,我们要调用 SetStringValue 方法(将常量 HKEY_USERS 和这三个变量一起作为参数传递),这样就大功告成了:
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
现在,如果您注销后再等几分钟,就会运行“脚本中心”屏幕保护程序。(假设注册表值 ScreenSaveActive 设置为 1;如果设置为 0,则表示禁用该屏幕保护程序。)
知道这有多简单了吧?噢,不,我们不是说脚本(虽然脚本也非常简单);我们是说要获得问题的答案有多简单,当然,您提问题的措辞很对路。就象常说的那句话,谁都爱听恭维话。
您好,脚本专家!我最近下载了你们的“脚本中心”屏幕保护程序,当有人登录计算机时,它运行起来棒极了。但是无人登录时,计算机却使用其它屏幕保护程序。如何让计算机在无人登录时也使用“脚本中心”屏幕保护程序?
-- RF
答:
您好,RF。您知道,我们遇到过这种情况,您可能在设法欺骗这些老脚本专家们。举个例子来说,我们怎么知道您希望无人登录计算机时运行的屏幕保护程序就是我们的屏幕保护程序?也许您只是奉承脚本专家,好让脚本专家回答您的问题。回答完问题后,您就会把我们甩掉,安装其它一些与脚本编写有关的屏幕保护程序作为默认屏幕保护程序。RF 啊 RF:您真的认为脚本专家头脑如此简单愿意受用这样的假意恭维吗?
嗯,您是该这样认为,因为我们确实如此:
Const HKEY_USERS = &H80000003
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = ".Default\Control Panel\Desktop"
ValueName = "SCRNSAVE.EXE"
strValue = "C:\WINDOWS\System32\Script Center.scr"
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
正如您所看到的,这是一个用于更改注册表的 WMI 脚本。它与我们过去为您展示的许多其它注册表修改脚本非常相似,但有一处特殊更改。在以前的脚本中,我们总是先定义一个常量,告诉脚本我们要处理 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE 注册表配置单元。这样做有充分的理由:我们希望将所做的一切更改都应用于当前用户或计算机本身。不过,请注意此脚本的第一行:
Const HKEY_USERS = &H80000003
秘密就在这里:这一次我们要处理 HKEY_USERS 注册表配置单元。除了其它用途外,HKEY_USERS 配置单元为您提供了这样一个场所:在其中配置的设置可应用于登录到计算机的任何用户,而不仅仅是某一特定的用户。换言之,如果您使用 HKEY_USERS 配置屏幕保护程序,该屏幕保护程序便是默认屏幕保护程序,会应用于登录到计算机的任何新用户。(除非用户明确配置其它屏幕保护程序,否则会继续应用默认屏幕保护程序。)同样,无人登录计算机时,也会使用此默认屏幕保护程序。
酷吧?顺便提一下,您还可以使用该注册表配置单元配置显示在登录屏幕上的墙纸;只需将注册表值 HKEY_USERS\.Default\Control Panel\Desktop\Wallpaper 设置为相应的文件路径即可。类似下面的代码:
Const HKEY_USERS = &H80000003
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = ".Default\Control Panel\Desktop"
ValueName = "Wallpaper"
strValue = "C:\WINDOWS\System32\Script Center.bmp"
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
定义常量后,接下来要连接本地计算机上的 WMI 服务(虽然此脚本在远程计算机上的运行效果同样不错)。然后,为下面三个不同的变量赋值:
• strKeyPath - HKEY_USERS 内注册表项的路径。在本例中,路径为 .Default\Control Panel\Desktop。
• ValueName - 要更改的注册表值的名称 (SCRNSAVE.EXE)。
• strValue - 要赋给 SCRNSAVE.EXE 的新值。在此脚本中,该值是此屏幕保护程序的完整路径。
最后,我们要调用 SetStringValue 方法(将常量 HKEY_USERS 和这三个变量一起作为参数传递),这样就大功告成了:
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
现在,如果您注销后再等几分钟,就会运行“脚本中心”屏幕保护程序。(假设注册表值 ScreenSaveActive 设置为 1;如果设置为 0,则表示禁用该屏幕保护程序。)
知道这有多简单了吧?噢,不,我们不是说脚本(虽然脚本也非常简单);我们是说要获得问题的答案有多简单,当然,您提问题的措辞很对路。就象常说的那句话,谁都爱听恭维话。
相关文章推荐
- 使用VBS程序自动配置计算机IP地址(改进版)
- Win8如何设置或取消恢复屏幕保护程序不提示输入登录密码
- 使用C#开发屏幕保护程序步骤
- 卸载掉您计算机中的屏幕保护程序
- php实现注册登录的完整程序(使用mysql数据库)
- 如何更改 Windows 中的登录屏幕保护程序
- PowerShell2.0之桌面计算机维护(三)设置屏幕保护程序
- 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)
- 程序:使用API开始屏幕保护
- Tomcat下配置与使用CAS实现单点登录
- C# 窗口实现Win7简单屏幕泡泡保护程序 和实现聊天窗口震动
- 关于Java main()程序使用maven打Jar包实现配置分离
- PowerShell2.0之桌面计算机维护(四)审核安全的屏幕保护程序
- FreeBSD学习笔记12-pureftpd使用详解(1)-安装、配置、实现匿名登录
- 配置RHEV中LINUX 虚拟机使用ACTIVE DIRECTORY(AD域)实现单点登录的方法
- centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
- vbs-计算机硬件信息查看器-源码-.exe程序-可直接使用复制使用
- 如何利用C++ Builder 5.0 实现屏幕保护程序的开发
- “屏幕保护程序”没有出现“在恢复时使用密码保护”的解决方法