home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / RedHat_She1841961192005.psc / VB / EnumTasks.bas < prev    next >
BASIC Source File  |  2004-10-24  |  4KB  |  85 lines

  1. Attribute VB_Name = "ModEnumTasks"
  2.  
  3. 'I hope this bit encourages you newbies to
  4. 'start new shells (use this to make a taskbar)
  5.  
  6. Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  7. Public Declare Function GetForegroundWindow Lib "user32" () As Long
  8. Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
  9. Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
  10. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  11. Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
  12.  
  13. Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  14. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  15.  
  16. Public Const LB_ADDSTRING = &H180
  17. Public Const LB_FINDSTRINGEXACT = &H1A2
  18. Public Const LB_ERR = (-1)
  19.  
  20. Public Const GW_OWNER = 4
  21. Public Const GWL_EXSTYLE = (-20)
  22.  
  23. Public Const WS_EX_APPWINDOW = &H40000
  24. Public Const WS_EX_TOOLWINDOW = &H80
  25.  
  26. Public Declare Function IsZoomed Lib "user32" (ByVal hwnd As Long) As Boolean
  27. Public Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
  28. Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
  29.  
  30. Public Declare Function DrawIconEx Lib "user32" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
  31. Public Const DI_NORMAL = &H3
  32.  
  33. Public Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Integer) As Long
  34.  
  35. Public Const WM_GETICON = &H7F
  36. Public Const GCL_HICON = (-14)
  37. Public Const GCL_HICONSM = (-34)
  38. Public Const WM_QUERYDRAGICON = &H37
  39.  
  40. Public Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long
  41.  
  42. 'This is used to get icons from windows >>>>
  43. 'Public Declare Function DrawIcon Lib "user32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long) As Long
  44.  
  45. Public ListApp As ListBox
  46. Public ListAppName As ListBox
  47.  
  48. Public Function fEnumWindows() As Long
  49.     With ListApp
  50.       .Clear
  51.       ListAppName.Clear
  52.       Call EnumWindows(AddressOf fEnumWindowsCallBack, .hwnd)
  53.       fEnumWindows = .ListCount
  54.     End With
  55. End Function
  56.  
  57. Private Function fEnumWindowsCallBack(ByVal hwnd As Long, ByVal lParam As Long) As Long
  58.     
  59.     Dim lExStyle As Long, bHasNoOwner As Boolean, sAdd As String, sCaption As String
  60.     
  61.     If IsWindowVisible(hwnd) Then
  62.         bHasNoOwner = (GetWindow(hwnd, GW_OWNER) = 0)
  63.         lExStyle = GetWindowLong(hwnd, GWL_EXSTYLE)
  64.         
  65.         If (((lExStyle And WS_EX_TOOLWINDOW) = 0) And bHasNoOwner) Or _
  66.             ((lExStyle And WS_EX_APPWINDOW) And Not bHasNoOwner) Then
  67.             sAdd = hwnd: sCaption = GetCaption(hwnd)
  68.             Call SendMessage(lParam, LB_ADDSTRING, 0, ByVal sAdd)
  69.             Call SendMessage(ListAppName.hwnd, LB_ADDSTRING, 0, ByVal sCaption)
  70.         End If
  71.     End If
  72.  
  73.     fEnumWindowsCallBack = True
  74. End Function
  75.  
  76. Public Function GetCaption(hwnd As Long) As String
  77.     Dim mCaption As String, lReturn As Long
  78.     mCaption = Space(255)
  79.     lReturn = GetWindowText(hwnd, mCaption, 255)
  80.     GetCaption = Left(mCaption, lReturn)
  81. End Function
  82.  
  83.  
  84.  
  85.