热情软件屋

 

如何让屏幕保护立即运行


编号:QA000755
建立日期: 1999年4月4日 最后修改日期:2003年7月19日
所属类别:

白凯华:
    有没有让屏幕保护马上发作的API函数?

回答:

    549的意见:
    想要调用系统屏幕保护,主要是发送一个WM_SYSCOMMAND消息即可。
    
     Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam
    
    As Int32, ByVal lParam As Int32) As Int32
     Private Const HWND_BROADCAST = &HFFFF&
     Private Const WM_SYSCOMMAND = &H112
     Private Const SC_SCREENSAVE = &HF140&
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0)
     End Sub
    

    
    李海的意见:
    一个办法是调用SystemParametersInfo函数。如:
    Const SPI_GETSCREENSAVETIMEOUT = 14
    Const SPI_SETSCREENSAVETIMEOUT = 15
    Const SPI_GETSCREENSAVEACTIVE = 16
    Const SPI_SETSCREENSAVEACTIVE = 17
    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 Sub
    这里我们把等待时间设置为1秒。只要你按下按钮后等待1秒钟屏幕保护会立即运行。
    另一种办法是调用屏幕保护程序并加上/s参数。

此问题由李海等回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Windows API, win32, api, windows api, gdi32, kernel

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio