home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / Working_po3527611142001.psc / api.bas < prev    next >
Encoding:
BASIC Source File  |  2001-11-02  |  2.5 KB  |  77 lines

  1. Attribute VB_Name = "api"
  2. Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
  3.  
  4. Private Declare Function SetForegroundWindow& Lib "user32" (ByVal hwnd As Long)
  5. 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
  6. Private Declare Function PostMessage& Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
  7.  
  8. Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, Y, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  9.  
  10. Declare Function GetAsyncKeyState Lib "user32" (ByVal dwMessage As Long) As Integer
  11.  
  12. Const HWND_TOPMOST = -1
  13. Const HWND_NOTOPMOST = -2
  14. Const SWP_NOMOVE = &H2
  15. Const SWP_NOSIZE = &H1
  16. Const SWP_NOACTIVATE = &H10
  17. Const SWP_SHOWWINDOW = &H40
  18. Const TOPMOST_FLAGS = SWP_NOMOVE Or SWP_NOSIZE
  19.  
  20.  
  21. Public Active As Boolean
  22.  
  23. Public Function Amazing_Magic_THING(sName As String, sKeyCode As String) As Boolean
  24.  
  25. On Error Resume Next
  26.  
  27. Dim sRandomSeed As String
  28. Dim X As Long
  29. Dim KeyCounter As Long
  30. Dim PrimaryLetter As Long
  31. Dim DecodedKey As String
  32. Dim AntiCodedLetter As Long
  33. Dim sBuffer As String
  34.     
  35. sRandomSeed = Left$(sKeyCode, InStr(sKeyCode, "-") - 1)
  36. sName = UCase$(sName)
  37. sKeyCode = Right$(sKeyCode, 10)
  38. KeyCounter = 1
  39.  
  40. For X = 1 To Len(sName)
  41.     If Asc(Mid$(sName, X, 1)) >= 65 And Asc(Mid$(sName, X, 1)) <= 90 Then sBuffer = sBuffer & Mid$(sName, X, 1)
  42. Next X
  43. sName = sBuffer
  44.  
  45. Do While Len(sName) < 10
  46.     sName = sName + Chr$(65)
  47. Loop
  48.  
  49. For X = 1 To Len(sKeyCode)
  50.     PrimaryLetter = Asc(Mid$(sKeyCode, X, 1))
  51.     AntiCodedLetter = PrimaryLetter - CInt(Mid$(sRandomSeed, KeyCounter, 1))
  52.  
  53.     If PrimaryLetter = 48 Then 'zero
  54.         DecodedKey = DecodedKey + Mid$(sName, X, 1) 'Take the corresponding letter from the name
  55.     Else
  56.         DecodedKey = DecodedKey + Chr$(AntiCodedLetter)
  57.     End If
  58.         KeyCounter = KeyCounter + 1
  59.         If KeyCounter > 4 Then KeyCounter = 1
  60. Next X
  61.  
  62. If DecodedKey = Left$(sName, 10) Then
  63.     Amazing_Magic_THING = True
  64. Else
  65.     Amazing_Magic_THING = False
  66. End If
  67.  
  68. End Function
  69.  
  70. Public Sub MakeNormal(hwnd As Long)
  71.     SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
  72. End Sub
  73.  
  74. Public Sub MakeTopMost(hwnd As Long)
  75.     SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
  76. End Sub
  77.