您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 真题 >> 正文    
  用VB设计更换屏幕保护的程序 【注册男护士专用博客】          

用VB设计更换屏幕保护的程序

www.nanhushi.com     佚名   不详 

  制作一个本企业的屏幕保护,在客户运行本企业的应用软件的时候,为客户更改屏幕保护,是个广告宣传的好办法。有很多朋友提出这个问题,现解答如下:

  要更换屏幕保护,首先得做好一个屏幕保护(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下运行通过。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    用VB设计更换屏幕保护的…
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。