Расширенная информация об окнах

  1. Enumeration
  2.   #gMainHWND_Dec
  3.   #gMainHWND_Hex
  4.   #gParentHWND_Dec
  5.   #gParentHWND_Hex
  6.   #gMainClass
  7.   #gParentClass
  8.   #gMainText
  9.   #gParentText
  10. EndEnumeration
  11.  
  12. Procedure UpdateWindowInfo()
  13.   Static Cursor.POINT, Wnd.l, Parent.l, MainClass${255}, ParentClass${255}, MainText${1024}, ParentText${1024}
  14.   GetCursorPos_(Cursor)
  15.  
  16. Wnd = WindowFromPoint_(Cursor\X|(Cursor\Y<<32))
  17.   GetClassName_(Wnd,@MainClass$,$FF)           ;получаем имя класса по хэндлу окна
  18.   GetWindowText_(Wnd,@MainText$,$FF)           ;получаем текст окна по хэндлу окна
  19.  
  20.   Parent = GetParent_(Wnd)                     ;получить хэндл родительского окна
  21.   GetClassName_(Parent,@ParentClass$,$FF)
  22.   GetWindowText_(Parent,@ParentText$,$FF)
  23.  
  24.   SetGadgetText(#gMainHWND_Dec,   Str(Wnd)    )
  25.   SetGadgetText(#gMainHWND_Hex,   Hex(Wnd)    )
  26.   SetGadgetText(#gParentHWND_Dec, Str(Parent) )
  27.   SetGadgetText(#gParentHWND_Hex, Hex(Parent) )
  28.   SetGadgetText(#gMainClass,      MainClass$  )
  29.   SetGadgetText(#gParentClass,    ParentClass$)
  30.   SetGadgetText(#gMainText,       MainText$   )
  31.   SetGadgetText(#gParentText,     ParentText$ )
  32. EndProcedure
  33.  
  34.  
  35.  
  36. wnd = OpenWindow(0,0,0,280,240,"Extended Window Viewer",#PB_Window_SystemMenu)
  37. CreateGadgetList(wnd)
  38.  
  39. TextGadget(#PB_Any,115,5,40,20,".:Dec:.")
  40. TextGadget(#PB_Any,215,5,40,20,".:Hex:.")
  41.  
  42. TextGadget(#PB_Any,5,22,50,20,"HWND:")
  43. StringGadget(#gMainHWND_Dec,85, 20,90,20,"")
  44. StringGadget(#gMainHWND_Hex,185,20,90,20,"")
  45.  
  46. TextGadget(#PB_Any,5,52,80,20,"Parent HWND:")
  47. StringGadget(#gParentHWND_Dec,85, 50,90,20,"")
  48. StringGadget(#gParentHWND_Hex,185,50,90,20,"")
  49.  
  50. TextGadget(#PB_Any,5,82,80,20,"CLASS:")
  51. StringGadget(#gMainClass,85,80,190,20,"")
  52.  
  53. TextGadget(#PB_Any,5,107,80,30,"ParentWND CLASS:")
  54. StringGadget(#gParentClass,85,110,190,20,"")
  55.  
  56. TextGadget(#PB_Any,5,142,80,20,"TEXT:")
  57. StringGadget(#gMainText,85,140,190,20,"")
  58.  
  59. TextGadget(#PB_Any,5,167,80,30,"ParentWND TEXT:")
  60. StringGadget(#gParentText,85,170,190,20,"")
  61.  
  62.  
  63. SetTimer_(wnd,0,100,@UpdateWindowInfo()); вызывать процедуру @UpdateWindowInfo() через каждые 100мс
  64.  
  65. Repeat : Until WaitWindowEvent() = #WM_CLOSE
  66.  
  67. End
Получаем WindowsClass окон.

Реклама

Мы в соцсетях

tw tg yt gt