home *** CD-ROM | disk | FTP | other *** search
/ The Mother of All Windows Books / CD-MOM.iso / cd_mom / newsletr / vbz / vbz1-3 / ssmain.bas < prev    next >
BASIC Source File  |  1993-06-18  |  3KB  |  93 lines

  1. DefInt A-Z
  2.  
  3. Global TimeToGo
  4.  
  5. Declare Sub DeleteDC Lib "GDI" (ByVal hDC)
  6. Declare Sub BitBlt Lib "GDI" (ByVal DestDC, ByVal X, ByVal Y, ByVal BWidth, ByVal BHeight, ByVal SourceDC, ByVal X, ByVal Y, ByVal Constant&)
  7.  
  8. Declare Function ShowCursor Lib "User" (ByVal nShow)
  9. Declare Function SystemParametersInfo Lib "User" (ByVal uAction, ByVal uParam, lvParam As Any, ByVal fuWinIni)
  10. Declare Function CreateDC Lib "GDI" (ByVal Driver$, ByVal Dev&, ByVal O&, ByVal Init&)
  11. Declare Function GetDeviceCaps Lib "GDI" (ByVal hDC, ByVal nIndex)
  12.  
  13. Const SPI_SETSCREENSAVEACTIVE = 17
  14. Const HORZRES = 8
  15. Const VERTRES = 10
  16.  
  17. Function GetPW ()
  18.     If GetSSIniLong("PWProtected", 0) = 1 Then
  19.         GetPW = GetSSPassWord()
  20.     Else
  21.         GetPW = True
  22.     End If
  23. End Function
  24.  
  25. Function GetSSIniLong& (Entry$, Default&)
  26.     Section$ = "Screen Saver." + AppName$
  27.     GetSSIniLong& = GetIniLong&("control.ini", Section$, Entry$, Default&)
  28. End Function
  29.  
  30. Function GetSSIniString$ (Entry$, Default$)
  31.     Section$ = "Screen Saver." + AppName$
  32.     GetSSIniString$ = GetIniString$("control.ini", Section$, Entry$, Default$)
  33. End Function
  34.  
  35. Sub HideCursor ()
  36.     Do
  37.     Loop Until ShowCursor(0) = -1
  38. End Sub
  39.  
  40. Sub Main ()
  41.     If App.PrevInstance Then End
  42.     C$ = UCase$(Command$)
  43.     If C$ = "/S" Or C$ = "-S" Then
  44.         Ok = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, ByVal 0&, 0)
  45.         Load frmSave
  46.         HideCursor
  47.         InitSave
  48.     Else
  49.         Load frmConfig
  50.         DialogBox frmConfig
  51.         frmConfig.Show 1
  52.     End If
  53. End Sub
  54.  
  55. Sub ScreenCapture ()
  56.     frmSave.Width = Screen.Width + 15
  57.     frmSave.Height = Screen.Height + 15
  58.     Ok = DoEvents()
  59.     DC = CreateDC("DISPLAY", 0, 0, 0)
  60.     ScrnW = GetDeviceCaps(DC, HORZRES)
  61.     ScrnH = GetDeviceCaps(DC, VERTRES)
  62.     frmSave.AutoRedraw = True
  63.     BitBlt frmSave.hDC, 1, 1, ScrnW, ScrnH, DC, 0, 0, &HCC0020
  64.     frmSave.AutoRedraw = False
  65.     DeleteDC DC
  66. End Sub
  67.  
  68. Sub SetSSIniLong (Entry$, ByVal Default&)
  69.     Section$ = "Screen Saver." + AppName$
  70.     SetIniLong "control.ini", Section$, Entry$, Default&
  71. End Sub
  72.  
  73. Sub SetSSIniString (Entry$, Default$)
  74.     Section$ = "Screen Saver." + AppName$
  75.     SetIniString "control.ini", Section$, Entry$, Default$
  76. End Sub
  77.  
  78. Sub UserEvent ()
  79.     If TimeToGo Then
  80.         Ok = ShowCursor(1)
  81.         If GetPW() Then
  82.             Ok = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, ByVal 0&, 0)
  83.             CleanUp
  84.         Else
  85.             HideCursor
  86.         End If
  87.         TimeToGo = False
  88.     Else
  89.         TimeToGo = True
  90.     End If
  91. End Sub
  92.  
  93.