code: def _handle_windows(self, event):
          vkey = self._keyname(event.GetKey())
          if event.Message in self.KEYS_UP + self.KEYS_DOWN:
              if vkey in self.MODIFIERNAMES:
                  self._realmodifiers[vkey] = event.Message in self.KEYS_DOWN
                  self._modifiers[self.MODIFIERNAMES[vkey]] = self._realmodifiers[vkey]
          if event.Message not in self.KEYS_DOWN:
              return True
          is_altgr = False
          if (vkey, event.IsExtended()) in self.NUMPAD_SPECIALS:
              key = vkey = "Numpad-" + vkey
          elif not event.Ascii or vkey.startswith("Numpad"):
              key = vkey
          else:
              is_altgr = event.Ascii in self.ALT_GRS
              key = self._keyname(unichr(event.Ascii))
          if DEBUG: print("Adding key %s (real %s)" % (key.encode("utf-8"), vkey.encode("utf-8")))
          self._output(type="keys", key=key, realkey=vkey)
          if vkey not in self.MODIFIERNAMES and not is_altgr:
              modifier = "-".join(k for k in ["Ctrl", "Alt", "Shift", "Win"]
                                  if self._modifiers[k])
              if modifier and modifier != "Shift":
                  if self._modifiers["Ctrl"] and event.Ascii:
                      key = self._keyname(unichr(event.KeyID))
                  realmodifier = "-".join(k for k, v in self._realmodifiers.items() if v)
                  realkey = "%s-%s" % (realmodifier, key)
                  key = "%s-%s" % (modifier, key)
                  if DEBUG: print("Adding combo %s (real %s)" % (key.encode("utf-8"), realkey.encode("utf-8")))
                  self._output(type="combos", key=key, realkey=realkey)
          if DEBUG:
              print("CHARACTER: %r" % key)
              print('GetKey: {0}'.format(event.GetKey()))
              print('IsAlt: {0}'.format(event.IsAlt()))
              print('IsExtended: {0}'.format(event.IsExtended()))
              print('IsInjected: {0}'.format(event.IsInjected()))
              print('IsTransition: {0}'.format(event.IsTransition()))
              print('ASCII: {0}'.format(event.Ascii))
              print('KeyID: {0}'.format(event.KeyID))
              print('ScanCode: {0}'.format(event.ScanCode))
              print('Message: {0}'.format(event.Message))
              print()
          return True