用VB设计更换屏幕保护的程序
2008-02-23 06:50:09来源:互联网 阅读 ()
要更换屏幕保护,首先得做好一个屏幕保护(scr文件),本例以 工程1.scr 这个文件为例。由于Windows是把屏幕保护文件存放在system下,但记录屏幕保护文件位置的文件却是windows目录下的system.ini,所以,首先需要找出系统的windows和system目录的确切安装位置。因此,可以分如下几步进行:
1、找到windows和system目录的安装位置
2、把屏幕保护文件复制到system目录下
3、在system.ini中的[boot]中写入:
SCRNSAVE.EXE=C:\WINDOWS\SYSTEM\工程1.SCR
4、告诉系统切换屏幕保护。
下面的例子成功地改变了屏幕保护,全部源代码如下:
'得到windows目录
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lPBuffer As String, ByVal nSize As Long) As Long
'修改system.ini
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lplFileName As String) As Long
'得到system目录
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
'设置屏幕保护
Private Const SPI_SETSCREENSAVETIMEOUT = 15
Private Const SPI_SETSCREENSAVEACTIVE = 17
Private Const SPIF_UPDATEINIFILE = &H1
Private Const SPIF_SENDWININICHANGE = &H2
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Long, ByVal fuWinIni As Long) As Long
'启动屏幕保护
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_SCREENSAVE = &HF140
Private Sub Form_Load()
'得到system目录
Dim sSave As String, Ret As Long
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left$(sSave, Ret)
'把屏保复制到系统目录
FileCopy App.Path & "\工程1.scr", sSave & "\工程1.SCR"
'得到windows目录
Dim Path As String, strSave As String
strSave = String(250, Chr$(0))
Path = Left$(strSave, GetWindowsDirectory(strSave, Len(strSave)))
'修改system.ini
Dim r As Long
Dim iniPath As String
iniPath$ = Path "\system.ini"
r = WritePrivateProfileString("boot", "SCRNSAVE.EXE", sSave & "\工程1.SCR", iniPath)
'设置时间间隔为1分钟=60秒
lRet = SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, 60, ByVal 0&,
SPIF_UPDATEINIFILE SPIF_SENDWININICHANGE)
'设置屏幕保护
retval = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, True, 0, 0)
'启动屏幕保护
Dim result As Long
result = SendMessage(Form1.hwnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
End Sub
本例在VB6.0 win95下运行通过。
上一篇: 无框窗体移动最简法(程序)
下一篇: 解除网虫心病 VB做定时断线程序
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:VB入门教程之二
- 用VB设计更换屏幕保护的程序 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash