MATLAB Answers


How do I get system idle time in MATLAB?

Asked by John
on 23 Feb 2011

How do I go about getting the system idle time in MATLAB, I've searched around and cant find anything. Im using Windows XP x64. I thought something with the 'system' command might work. Thanks


Log in to comment.


1 Answer

Answer by John
on 23 Feb 2011
 Accepted Answer

Found this perl script that works, simply call perl('') in matlab

use Win32::OLE;
use Win32::API;
use Win32;
#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 ??
#Get the tick value
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";


Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today