Basic Key Logger 

Eric J. Fimbel - Software - home page 

Basic key logger at Source Forge    basic key logger at Softpedia 

Basic key logger at Softoxi (see video)  more software at basic lab book

Copyright (C) 2006, 2011 Eric J.Fimbel. Contact : basicLabBook@gmail.com. See license terms at bottom


Tecnalia - Fatronik supports this open source software since January 2010


Download


documentation (pdf)

New features: show or hide icon on task bar.

Previous versions : bottom of page


Requirements

Windows XP and further, 25 Mb disk space.

No additional requirement. 

Note. Basic Key Logger is written in Python but it contains a local installation, i.e., it is standalone.


What is Basic Key Logger?

Basic Key Logger is a standalone key logger.  It records mouse and keyboard from any application running in parallel. 

Temporal resolution: 10-15ms (depends on CPU and active services)

Events storage: in memory during the recording (so that there is no disk access), written to disk at the end.

Log files:

key log: input events, e.g., key press, key release, mouse move.

KPC logoperations, e.g., Key typing, Pointing movements, Clicks. 

Operations are more concise than input events and they show clearly what a user is doing.

Size of log files: key log, typically 2,5k/second of recording; KPC log, 0.2k/s (depends on what you are doing).

Format of log files: TSV (tab-separated values). Can be opened in spreadsheets (Open Office, Excel(r) ) or in any text editor.

Left: key log. Right: KPC log. Click to enlarge

Additional features: external commands (suspend, resume, add tags, shutdown), configurable by means of configuration files and/or command line arguments, plus (optional): periodic disk write, daily shutdown, absolute or relative time stamps, show or hide icon on task bar...


What is NOT Basic Key Logger ?

Basic Key Logger is not a spyware (yeark!). 

A blue led on the task bar shows that Basic Key Logger is recording. When the icon is hidden,  Basic Key Logger is visible from the Task Manager.

There are no hidden files or data transmissions (easy to check: it is open source).

Basic Key Logger is not a backup system. You cannot play back the logs.



Typical applications

Basic Key Logger is an evaluation tool for human-computer interaction. 

Basic Key Logger is suitable for software development: you can test prototypes as well as final applications without modifying your sources.

Examples of analyses

From the KPC log: number of operations per task, execution time of operations, typing rates, length of pointing movements, pauses...

From the Key log: mouse trajectories, kinematics (velocity, acceleration, jerk ), density of mouse movements and mouse clicks in determined regions, etc.

Left: number of operations (K,A=key press, P=pointing...; from KPC log). Right: execution time; x-axis: sequence of operations, y-axis: execution time of operation (From KPC log).


Left: trajectory of mouse on screen (from key log). Right: amplitude of pointing movements(distance between endpoints vs. actual length of movement; from KPC log).

These results can be obtained directly in a spreadsheet. See another example:


Basic Key Logger is also a tool to build KPC models. A KPC model predicts the average execution time of a task from the number of operations employed by an expert user. 



Installation and uninstallation

Installation: unzip the download in any directory. 

Uninstallation: delete the installation directory.



Getting started

Go to the installation directory and execute startkeyLogger.exe. There is now a blue led in the task bar that indicates recording


If you don't want to show the icon execute startHidden.exe (new in release 2011 03 01)

Do whatever you want (click click key key mouse move click click....).

To stop recording, click on the task bar icon (the led). The following window appears.

In versions 2009-12-31 and following, the window displays the root directory of Basic Key Logger (helpful to find the log files).

If the icon is hidden, execute stopKeyLogger.exe 

Click in the blue panel. The window disappears and the logs are created in subfolder data/


Input events (Key log)


The input events are:
keyDown,  keyUp: keyboard    
mouseLeftDown, mouseLeftUp : left mouse button  
mouseMiddleDown, mouseMiddleUp: middle mouse button
mouseRightDown, mouseRightUp: right mouse button    
mouseMove : mouse displacement  
mouseWheel : scroll of mouse wheel.  

The parameters of the events are presented in the documentation


Operations (KPC log)


The operations of the KPC logs are: 
K: key press
A: automatic key press generated by auto-repeat
P: mouse movement 
C: click on mouse button
W: scroll of mouse wheel
Q: pause (quiet time)

The parameters of the operations are presented in the documentation

Each operation is generated from a sequence of events as follows


Table 1. Operations of Basic Key Logger and rules of conversion events-operations
 operation  description rules of start and stop.
A automatic key press
(keyboard auto-repeat)
start: event key X down when X was already pressed.

stop: next event key X up or key X down
C mouse button click  start: event button X down

stop: next event button X up

key press  start: event key X down when X was not already pressed.

stop: next key X up.
P pointing  start: event mouse move when there is not a P operation already started.

stop: next event mouse move that verifies:

1) the previous mouse move occurred more than 100ms before (duration is adjustable) AND

2) there is an intermediary event (different from mouse move) after the previous move move.

comment. A P stops when there is a pause in mouse movement and something occurs during this pause.
Q  quiet period   start: the previous event occurred more than 1s ago (duration is adjustable).

stop: next event.

comment. Q represents the pauses that were observed. This is more general than the Q operation of KPC, which represents a forced pause.
W scroll of mouse wheel.  start: event mouse wheel when there is not a W operation already started.

stop: next event mouse wheel that verifies:

1) the previous mouse wheel occurred more than 100ms before (duration is adjustable) AND

2) there is an intermediary event (different from mouse wheel) after the previous mouse wheel.

comment. A W stops when there is a pause in mouse wheel scrolling and something occurs during this pause


Former versions & version history


Current version - v1. release 2011 03 01

New features: show or hide icon on task bar.

Version 1 release 2011 03 01 for Windows - standalone (zip 8mb).

Previous versions 

Standalone versions (interface in Pygame)



Non-standalone versions (interface in TKinter)

For Python 2.4 and higher.  Required installations: Python, Ctypes, PyWin32 and PyHook.

Python installer Python-2.4.4.msi (9 mb). 
Higher versions and documentation at http://www.python.org

Ctypes for Python 2.4. installer ctypes-1.0.2.win32-py2.4.exe (165k)
(ctypes is included in higher versions). Documentation at sourceforge.net/projects/ctypes

PyWin32 installer PyWin32-210.win32-py2.4.exe ( 4 mb ). 
Higher versions and documentation at sourceforge.net/projects/pywin32/

PyHook  installer PyHook-1.4.win32-py2.4.exe ( 74 k ). 
Higher versions and documentation at sourceforge.net/projects/pyhook/

Version 0 release 2007 05 22 for Windows setup *.exe ( 670 k)

Version 0 release 2007 04 15 for Windows setup*.exe ( 700 k)



License


This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by  the Free Software Foundation version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

See the GNU General Public License for more details.


Open source software and icons included in this distribution