Hi,
I've installed event filter (qApp->installEventFilter) to catch and record mouse and keyboard user interactions. It seems to work fine. But when I try to replay events (they are read from file), all NonClientAreaMouse events are ignored. So I cannot replay windoes movement or windows close actions. There is also problem with keyboard events, but it will be the second question (may be I need to add focus events in recorder). Player send events this way:
Qt Code:
  1. case QEvent::NonClientAreaMouseButtonDblClick:
  2. case QEvent::NonClientAreaMouseButtonPress:
  3. case QEvent::NonClientAreaMouseButtonRelease:
  4. case QEvent::NonClientAreaMouseMove:
  5. case QEvent::MouseButtonDblClick:
  6. case QEvent::MouseButtonPress:
  7. case QEvent::MouseButtonRelease:
  8. case QEvent::MouseMove:
  9. {
  10. int x=fields[1].toInt();
  11. int y=fields[2].toInt();
  12. lastPos.setX(x);
  13. lastPos.setY(y);
  14. if (type==QEvent::MouseMove || type==QEvent::NonClientAreaMouseMove)
  15. {
  16. QCursor::setPos(lastPos);
  17. }
  18. receiver=QApplication::widgetAt(lastPos);
  19. if (receiver)
  20. {
  21. Qt::MouseButton button=static_cast<Qt::MouseButton>(fields[3].toInt());
  22. Qt::MouseButtons buttons=static_cast<Qt::MouseButtons>(fields[4].toInt());
  23. Qt::KeyboardModifiers modifiers=fields[5].toInt();
  24. evt=new QMouseEvent(type, receiver->mapFromGlobal(lastPos), button, buttons, modifiers);
  25. }
  26. break;
  27. }
  28. ...
  29. if (evt && receiver)
  30. {
  31. QCoreApplication::postEvent(receiver, evt);
  32. }
To copy to clipboard, switch view to plain text mode 
QEvent::Mouse work, but QEvent::NonClientAreaMouse didn't.

P.S. Please don't suggest to use SetWindowsHookEx. There are many implementations, but I need it crossplatform.