logmouse.pp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. unit logmouse;
  2. interface
  3. Procedure StartMouseLogging;
  4. Procedure StopMouseLogging;
  5. Function IsMouseLogging : Boolean;
  6. Procedure SetMouseLogFileName(FileName : String);
  7. implementation
  8. uses sysutils,Mouse;
  9. var
  10. NewMouseDriver,
  11. OldMouseDriver : TMouseDriver;
  12. Active,Logging : Boolean;
  13. LogFileName : String;
  14. MouseLog : Text;
  15. Function TimeStamp : String;
  16. begin
  17. TimeStamp:=FormatDateTime('hh:nn:ss',Time());
  18. end;
  19. Procedure StartMouseLogging;
  20. begin
  21. Logging:=True;
  22. Writeln(MouseLog,'Start logging mouse events at: ',TimeStamp);
  23. end;
  24. Procedure StopMouseLogging;
  25. begin
  26. Writeln(MouseLog,'Stop logging mouse events at: ',TimeStamp);
  27. Logging:=False;
  28. end;
  29. Function IsMouseLogging : Boolean;
  30. begin
  31. IsMouseLogging:=Logging;
  32. end;
  33. Procedure LogGetMouseEvent(Var Event : TMouseEvent);
  34. Var
  35. M : TMouseEvent;
  36. begin
  37. OldMouseDriver.GetMouseEvent(M);
  38. If Logging then
  39. begin
  40. Write(MouseLog,TimeStamp,': Mouse ');
  41. With M do
  42. begin
  43. Case Action of
  44. MouseActionDown : Write(MouseLog,'down');
  45. MouseActionUp : Write(MouseLog,'up');
  46. MouseActionMove : Write(MouseLog,'move');
  47. end;
  48. Write(MouseLog,' event at ',X,',',Y);
  49. If (Buttons<>0) then
  50. begin
  51. Write(MouseLog,' for buttons: ');
  52. If (Buttons and MouseLeftbutton)<>0 then
  53. Write(MouseLog,'Left ');
  54. If (Buttons and MouseRightbutton)<>0 then
  55. Write(MouseLog,'Right ');
  56. If (Buttons and MouseMiddlebutton)<>0 then
  57. Write(MouseLog,'Middle ');
  58. end;
  59. Writeln(MouseLog);
  60. end;
  61. end;
  62. end;
  63. Procedure LogInitMouse;
  64. begin
  65. OldMouseDriver.InitDriver();
  66. Assign(MouseLog,logFileName);
  67. Rewrite(MouseLog);
  68. Active:=True;
  69. StartMouseLogging;
  70. end;
  71. Procedure LogDoneMouse;
  72. begin
  73. StopMouseLogging;
  74. Close(MouseLog);
  75. Active:=False;
  76. OldMouseDriver.DoneDriver();
  77. end;
  78. Procedure SetMouseLogFileName(FileName : String);
  79. begin
  80. If Not Active then
  81. LogFileName:=FileName;
  82. end;
  83. Initialization
  84. GetMouseDriver(OldMouseDriver);
  85. NewMouseDriver:=OldMouseDriver;
  86. NewMouseDriver.GetMouseEvent:=@LogGetMouseEvent;
  87. NewMouseDriver.InitDriver:=@LogInitMouse;
  88. NewMouseDriver.DoneDriver:=@LogDoneMouse;
  89. LogFileName:='Mouse.log';
  90. Logging:=False;
  91. SetMouseDriver(NewMouseDriver);
  92. end.