Found this perl script that works, simply call perl('last-input.pl') in matlab
use Win32::OLE;
use Win32::API;
use Win32;
$debug=0;
#Count the current 'ticks' (time in millisecs since last boot)
my $tick = Win32::GetTickCount();
#Create a structure for LASTINPUTINFO
my $struct = Win32::API::Struct->typedef( LASTINPUTINFO => qw{
UINT cbSize;
DWORD dwTime;
});
#Reference user32.dll
my $dllcall = Win32::API->Import("user32", 'BOOL GetLastInputInfo(LPLASTINPUTINFO plii)');
#Call this dll
my $input = Win32::API::Struct->new('LASTINPUTINFO');
#Define a buffer size to fill with the tick value of last input ??
$input->{"cbSize"}=$input->sizeof;
#Get the tick value
GetLastInputInfo($input);
my $lastinput = $input->{"dwTime"};
print "Current Tick: $tick\n" if ($debug);
print "Last Input: $lastinput\n" if ($debug);
#Convert the difference betwen values to seconds
my $diff = ($tick - $lastinput)/1000;
print "Last input: $diff seconds ago\n";