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

  1. DefInt A-Z
  2.  
  3. Global IniPassWord$
  4. Global EnteredCorrectPassword
  5.  
  6. Declare Sub SetSysModalWindow Lib "User" (ByVal hWnd)
  7. Declare Function FindWindow Lib "User" (Class As Any, Capt As Any)
  8.  
  9. Sub EncryptString (Source$)
  10.     Dim Strg As String
  11.     StrgLg = Len(Source$)
  12.     If StrgLg = 0 Then Exit Sub
  13.     Strg = UCase$(Source$)
  14.  
  15.     'First go forwards
  16.     For StrgPt = 0 To StrgLg - 1
  17.         TheByte = Asc(Mid$(Strg, StrgPt + 1, 1))
  18.         EXor StrgLg, TheByte
  19.         If StrgPt = 0 Then
  20.           EXor &H2A, TheByte     'Xor first byte with constant
  21.         Else
  22.           EXor StrgPt, TheByte   'Xor with position
  23.           EXor Asc(Mid$(Strg, StrgPt, 1)), TheByte  'Xor with prev char
  24.         End If
  25.         Mid$(Strg, StrgPt + 1, 1) = Chr$(TheByte)
  26.     Next
  27.  
  28.     If StrgLg = 1 Then Exit Sub
  29.  
  30.     'Now go backwards if length > 1
  31.     For StrgPt = StrgLg - 1 To 0 Step -1
  32.         TheByte = Asc(Mid$(Strg, StrgPt + 1, 1))
  33.         EXor StrgLg, TheByte
  34.         If StrgPt = StrgLg - 1 Then
  35.           EXor &H2A, TheByte
  36.        Else
  37.           EXor StrgPt, TheByte
  38.           EXor Asc(Mid$(Strg, StrgPt + 2, 1)), TheByte
  39.        End If
  40.        Mid$(Strg, StrgPt + 1, 1) = Chr$(TheByte)
  41.     Next
  42.     Source$ = Strg
  43. End Sub
  44.  
  45. Sub EXor (X1, X2)
  46.     Temp = (X2 Xor X1)
  47.     Select Case Temp
  48.         Case &H0 To &H20, &H7F To &H90, &H93 To &H9F, &H3D, &H5B, &H5D
  49.         Case Else
  50.             X2 = Temp
  51.     End Select
  52. End Sub
  53.  
  54. Function GetSSPassWord ()
  55.     Ok = DoEvents()
  56.     EnteredCorrectPassword = False
  57.     IniPassWord$ = GetIniString$("control.ini", "ScreenSaver", "Password", "")
  58.     If Len(IniPassWord$) And FindWindow(ByVal 0&, ByVal "Desktop") = 0 Then
  59.         Load frmGetPW
  60.         DialogBox frmGetPW
  61.         SetSysModalWindow frmGetPW.hWnd
  62.         frmGetPW.Show 1
  63.     Else
  64.         EnteredCorrectPassword = True
  65.     End If
  66.     GetSSPassWord = EnteredCorrectPassword
  67.     TimeToGo = False
  68. End Function
  69.  
  70. Sub SetSSPassWord ()
  71.     Load frmSetPW
  72.     DialogBox frmSetPW
  73.     frmSetPW.Show 1
  74. End Sub
  75.  
  76.