aa hook.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import wx
  2. import pyHook
  3. from pyAA import *
  4. class myFrame(wx.Frame):
  5. def __init__(self):
  6. wx.Frame.__init__(self, None, -1, 'My Frame')
  7. self.hm = pyHook.HookManager()
  8. self.hm.MouseAllButtonsDown = self.OnMouseEvent
  9. self.hm.KeyDown = self.OnKeyboardEvent
  10. self.hm.HookMouse()
  11. self.hm.HookKeyboard()
  12. wx.EVT_CLOSE(self, self.OnClose)
  13. def OnGetAO(self, event):
  14. if event.Type == 'keyboard':
  15. ao = AccessibleObjectFromWindow(event.Window, OBJID_CLIENT)
  16. elif event.Type == 'mouse':
  17. ao = AccessibleObjectFromPoint(event.Position)
  18. print
  19. print '---------------------------'
  20. print 'Event:'
  21. print ' ',event.MessageName
  22. print ' Window:', event.WindowName
  23. if event.Type == 'keyboard':
  24. print ' Key:',event.Key
  25. print
  26. print 'Object:'
  27. try:
  28. print ' Name:', ao.Name
  29. except:
  30. print
  31. try:
  32. print ' Value:', ao.Value
  33. except:
  34. print
  35. try:
  36. print ' Role:', ao.RoleText
  37. except:
  38. print
  39. try:
  40. print ' Description:', ao.Description
  41. except:
  42. print
  43. try:
  44. print ' State:', ao.StateText
  45. except:
  46. print
  47. try:
  48. print ' Shortcut:', ao.KeyboardShortcut
  49. except:
  50. print
  51. def OnMouseEvent(self, event):
  52. event.Type = 'mouse'
  53. wx.CallAfter(self.OnGetAO, event)
  54. def OnKeyboardEvent(self, event):
  55. event.Type = 'keyboard'
  56. wx.CallAfter(self.OnGetAO, event)
  57. def OnClose(self, event):
  58. del self.hm
  59. self.Destroy()
  60. if __name__ == '__main__':
  61. app = wx.PySimpleApp(0)
  62. frame = myFrame()
  63. app.SetTopWindow(frame)
  64. frame.Show()
  65. app.MainLoop()