用vb如何编程实现屏幕保护程序的设置

kxyzjm 2005-10-15 10:18:02
1、用vb如何编程实现屏幕保护程序的设置
2、用vb如何编程的方法知道本机屏幕保护程序的设置的参数,如保护程序文件名和等待的时间以及有无密码保护等。
...全文
690 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kxyzjm 2005-10-25
  • 打赏
  • 举报
回复
请大家多帮忙
kxyzjm 2005-10-25
  • 打赏
  • 举报
回复
谁有WINDOWS2000+VBSP6关于1楼问题的资料,请指教。
kxyzjm 2005-10-17
  • 打赏
  • 举报
回复
谁有WINDOWS2000+VBSP6关于1楼问题的资料,请指教。
northwolves 2005-10-16
  • 打赏
  • 举报
回复
另外,刚才查了一下API函数库,利用SystemParametersInfo API 也可进行读取或设置.

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Const SPI_SETSCREENREADER = 71

Private Const SPI_SETSCREENSAVEACTIVE = 17

Private Const SPI_SETSCREENSAVETIMEOUT = 15

Private Const SPI_GETSCREENREADER = 70

Private Const SPI_GETSCREENSAVEACTIVE = 16

Private Const SPI_GETSCREENSAVETIMEOUT = 14

Private Const SPIF_UPDATEINIFILE = &H1

Private Const SPIF_SENDWININICHANGE = &H2
province_ 2005-10-16
  • 打赏
  • 举报
回复
补充:你的程序必须能处理启动参数,因为屏保程序运行与设置时的启动参数是不同的。
northwolves 2005-10-16
  • 打赏
  • 举报
回复
设备所限,无法知道你的问题所在。

SystemParametersInfo的用法如下

Private Const SPI_SETSCREENSAVETIMEOUT = 15
Private Const SPIF_SENDWININICHANGE = &H2
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Sub Command1_Click()'立即启动屏幕保护
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, 1, 0&, SPIF_SENDWININICHANGE
End
kxyzjm 2005-10-16
  • 打赏
  • 举报
回复
我用的是WINDOWS2000+VBSP6(regobj.dll),
northwolves 2005-10-16
  • 打赏
  • 举报
回复
狼行天下你好:按照你的指导,先引用Registry Access Functions library(RegObj.dll)],可是引用后发现没能找到你在代码中使用的方法只有下面的几个,不知为何,望指教!
myreg.AddRootRegKey
myreg.RegKeyFromHKey
myreg.RegKeyFromString
myreg.RemoteRegistry

------------------------
可能与版本有关。我的WINDOWSXP+VBSP6(regobj.dll),windowsme+VBSP5(regtool5.dll)都能执行。
你也可以用别的注册表读写办法操作以上几个KEY,SUBKEY。
kxyzjm 2005-10-16
  • 打赏
  • 举报
回复
大家多帮忙
kxyzjm 2005-10-16
  • 打赏
  • 举报
回复
狼行天下你好:按照你的指导,先引用Registry Access Functions library(RegObj.dll)],可是引用后发现没能找到你在代码中使用的方法只有下面的几个,不知为何,望指教!
myreg.AddRootRegKey
myreg.RegKeyFromHKey
myreg.RegKeyFromString
myreg.RemoteRegistry

另外,关于利用SystemParametersInfo API 进行读取或设置.如何做,能否说得明白一点,最好有一个实例
谢谢
northwolves 2005-10-15
  • 打赏
  • 举报
回复
访问注册表,现写一个:

'先引用Registry Access Functions library(RegObj.dll)]:

Private Sub Command1_Click() ' get screensaver
Dim myReg As New Registry, ScreenSaveActive As String, savername As String, ScreenSaveTimeOut As String, ScreenSaverIsSecure As String, msg As String
myReg.GetKeyValue HKEY_CURRENT_USER, "Control Panel\Desktop", "ScreenSaveActive", ScreenSaveActive
myReg.GetKeyValue HKEY_CURRENT_USER, "Control Panel\Desktop", "ScreenSaverIsSecure", ScreenSaverIsSecure
myReg.GetKeyValue HKEY_CURRENT_USER, "Control Panel\Desktop", "ScreenSaveTimeOut", ScreenSaveTimeOut
myReg.GetKeyValue HKEY_CURRENT_USER, "Control Panel\Desktop", "SCRNSAVE.EXE", savername

msg = "savername" & vbTab & savername
msg = msg & vbCrLf & "ScreenSaveActive" & vbTab & CBool(ScreenSaveActive)
msg = msg & vbCrLf & "ScreenSaverIsSecure" & vbTab & CBool(ScreenSaverIsSecure)
msg = msg & vbCrLf & "ScreenSaveTimeOut " & vbTab & ScreenSaveTimeOut & " s"
MsgBox msg
End Sub

Private Sub Command2_Click() 'set screensaver
Dim myReg As New Registry
myReg.UpdateKey HKEY_CURRENT_USER, "Control Panel\Desktop", "ScreenSaveActive", "1"
myReg.UpdateKey HKEY_CURRENT_USER, "Control Panel\Desktop", "ScreenSaverIsSecure", "0"
myReg.UpdateKey HKEY_CURRENT_USER, "Control Panel\Desktop", "ScreenSaveTimeOut", "120"
myReg.UpdateKey HKEY_CURRENT_USER, "Control Panel\Desktop", "SCRNSAVE.EXE", "c:\WINDOWS\system32\ssbezier.scr"
MsgBox "set screensaver is ok"
End Sub
tianhuo_soft 2005-10-15
  • 打赏
  • 举报
回复
VB实例教程 科学出版社
ISBN:7-03-007911-6
第二章专门讲屏幕保护程序这个,我没哟光盘代码实在太多 没办法只能帮你怎么多

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧