Advertisement
C_Volume2 Windows API Call/ Explanation #77873

Screensaver Wallpaper

These are API calls that will allow you to change the wallpaper (instant update) and turn on the screensaver. I looked for examples of this on PCS and never found any that worked. These do.

AI

AI 요약: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

소스 코드
original-source
<br><br>
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<br><br><br>
Private Const SPI_SETSCREENSAVEACTIVE = 17<br>
Private Const SPIF_UPDATEINIFILE = &H1<br>
Private Const SPIF_SENDWININICHANGE = &H2<br>
Private Const SPI_GETSCREENSAVETIMEOUT = 14<br>
Private Const SPI_SETSCREENSAVETIMEOUT = 15<br>
Private Const SPI_SETDESKWALLPAPER = 20<br><br><br>
Private Sub ChangeWallPaper(strWP As String)<br>
 Dim ret As Long<br>
 ret = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, strWP, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)<br>
End Sub<br><br>
Private Sub ClearWallPaper()<br>
 Dim ret As Long<br>
 ret = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, "(None)", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)<br>
End Sub<br><br>
Private Function ScreenSaverActive(Value As Boolean)<br>
 Call SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, Value, 0&, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)<br>
End Function<br><br><br>
Public Function SetScreenSaverTimeOut(ByVal NewValueInMinutes As Long) As Boolean<br>
 'Sets Screen Saver Timeout in Minutes
 <br>Dim lRet As Long<br>
 Dim lSeconds As Long<br>
 lSeconds = NewValueInMinutes * 60<br>
 lRet = SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, lSeconds, ByVal 0&, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)<br>
 SetScreenSaverTimeOut = lRet <> 0<br>
End Function<br>
원본 댓글 (3)
Wayback Machine에서 복구됨