I'm wondering if there is any way for rainmeter to know if the user has left his computer (doesn't use keyboard/mouse for x time)
I'd like to lower the update rate of my whole skin when the user isn't using his computer and for that need a way to detect this...
is that possible with one of the current plugins/features?
thanks!
It is currently March 29th, 2024, 1:29 am
Away From Keyboard(/mouse) plugin?
-
- Posts: 28
- Joined: February 17th, 2014, 2:22 am
-
- Developer
- Posts: 22628
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Away From Keyboard(/mouse) plugin?
Nothing built into Rainmeter if there is some utility that you can run in the background in Windows that can monitor some behavior (mouse or keyboard activity), you might be able to configure that to execute some command, including !Bangs to Rainemter.exe from the command line.
-
- Posts: 28
- Joined: February 17th, 2014, 2:22 am
Re: Away From Keyboard(/mouse) plugin?
ok, will look some more.
Did find a bunch but mostly are related to games.
would be a nice feature to include
Although in most cases it's not really relevant..
thanks!
Did find a bunch but mostly are related to games.
would be a nice feature to include
Although in most cases it's not really relevant..
thanks!
-
- Developer
- Posts: 22628
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Away From Keyboard(/mouse) plugin?
Not something that jumps out at me as terribly useful, but also not a bad little "bell and whistle" ability.
Might be something with CallNtPowerInformation in a plugin, maybe someone will look into that.
Found this description of how it might work:
There's one simpler way to retrieve system-wide activity on Windows Vista and later OS though. You'll get a "very clunky" output, but it will work system-wide. Call CallNtPowerInformation with SystemPowerInformation and examine the TimeRemaining member of the SYSTEM_POWER_INFORMATION struct. This value will be updated every "now-and-then" if there's no system-wide user activity. The question that I struggled with, is "how often is 'now-and-then'?" The answer doesn't seem to be as straightforward as it seems. It depends on the OS. For Vista it is done every 10 seconds or so, for Windows 7 - every 15 sec, and for Windows 8 - every 30 seconds. For Windows XP though, it is updated ONLY if the "Put computer to sleep" setting in the Power Options in Control Panel is set to something other than "Never". So I would not use it on XP.
Basically it just uses the values that Windows is already setting to track "idle time" for purposes of the Power Plan settings.
Might be something with CallNtPowerInformation in a plugin, maybe someone will look into that.
Found this description of how it might work:
There's one simpler way to retrieve system-wide activity on Windows Vista and later OS though. You'll get a "very clunky" output, but it will work system-wide. Call CallNtPowerInformation with SystemPowerInformation and examine the TimeRemaining member of the SYSTEM_POWER_INFORMATION struct. This value will be updated every "now-and-then" if there's no system-wide user activity. The question that I struggled with, is "how often is 'now-and-then'?" The answer doesn't seem to be as straightforward as it seems. It depends on the OS. For Vista it is done every 10 seconds or so, for Windows 7 - every 15 sec, and for Windows 8 - every 30 seconds. For Windows XP though, it is updated ONLY if the "Put computer to sleep" setting in the Power Options in Control Panel is set to something other than "Never". So I would not use it on XP.
Basically it just uses the values that Windows is already setting to track "idle time" for purposes of the Power Plan settings.
-
- Posts: 28
- Joined: February 17th, 2014, 2:22 am
Re: Away From Keyboard(/mouse) plugin?
funny, I was just visiting this page:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383561%28v=vs.85%29.aspx
which suggest it's possible to launch a task when there is no user input (if it can be separated from the cpu thresholds that could be enough + low resources as it's native windows)
Will look into both later this weekend.
I'm using rainmeter (awesome tool btw!) to monitor my (3d) render farm by having the workstation read the openHardwareMonitor reports for all the nodes every x seconds and display that info.
But with 11 computer it's taking up 5-10% of the workstation's cpu when updating every 1-3 seconds.
And as it's often rendering while I'm afk it's then useless to update that often.
Therefor wish to adjust the update rate based on the computer interaction (only keyboard/mouse as cpu etc will be fully used) to save cpu and unnecessary network activity.
just for the fun 2 screenshots attached
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383561%28v=vs.85%29.aspx
which suggest it's possible to launch a task when there is no user input (if it can be separated from the cpu thresholds that could be enough + low resources as it's native windows)
Will look into both later this weekend.
I'm using rainmeter (awesome tool btw!) to monitor my (3d) render farm by having the workstation read the openHardwareMonitor reports for all the nodes every x seconds and display that info.
But with 11 computer it's taking up 5-10% of the workstation's cpu when updating every 1-3 seconds.
And as it's often rendering while I'm afk it's then useless to update that often.
Therefor wish to adjust the update rate based on the computer interaction (only keyboard/mouse as cpu etc will be fully used) to save cpu and unnecessary network activity.
just for the fun 2 screenshots attached
You do not have the required permissions to view the files attached to this post.
-
- Developer
- Posts: 22628
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Away From Keyboard(/mouse) plugin?
I saw that function as well, but it is designed to be used in the context of the application calling it, so it would in effect detect whether there has been any user activity in the Rainmeter skin running the plugin, not the entire system. Not what we would be looking for I don't think.
-
- Posts: 28
- Joined: February 17th, 2014, 2:22 am
Re: Away From Keyboard(/mouse) plugin?
From what I read, this should be it : http://msdn.microsoft.com/en-us/library/ms646302%28VS.85%29.aspx
and here where the second post provides an example script >http://stackoverflow.com/questions/2212823/how-to-detect-inactive-user
note..I have zero programming capabilities..
I already consider it a miracle that I got rainmeter working the way I wanted it
and here where the second post provides an example script >http://stackoverflow.com/questions/2212823/how-to-detect-inactive-user
but now the question.. can I just 'throw' this in a plugin or do I need to write a plugin for it myself?function SecondsIdle: DWord;
var
liInfo: TLastInputInfo;
begin
liInfo.cbSize := SizeOf(TLastInputInfo) ;
GetLastInputInfo(liInfo) ;
Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;
procedure TForm1.Timer1Timer(Sender: TObject) ;
begin
Caption := Format('System IDLE last %d seconds', [SecondsIdle]) ;
end;
note..I have zero programming capabilities..
I already consider it a miracle that I got rainmeter working the way I wanted it
-
- Developer
- Posts: 22628
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Away From Keyboard(/mouse) plugin?
You would need to actually write a plugin in either C++ or C#. No real shortcut for that.
http://docs.rainmeter.net/developers
http://docs.rainmeter.net/developers
-
- Posts: 28
- Joined: February 17th, 2014, 2:22 am
Re: Away From Keyboard(/mouse) plugin?
Ouch.. I feared so... Thats way over my head..
Will see if I can find another alternative for now.
Not really realistic to expect from myself to learn that in a few hours
Thanks!
Will see if I can find another alternative for now.
Not really realistic to expect from myself to learn that in a few hours
Thanks!
-
- Developer
- Posts: 22628
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Away From Keyboard(/mouse) plugin?
Yeah, agreed, and I don't think that is the best resource to use. If you read the remarks:nixx3d wrote:Ouch.. I feared so... Thats way over my head..
Will see if I can find another alternative for now.
Not really realistic to expect from myself to learn that in a few hours
Thanks!
This function is useful for input idle detection. However, GetLastInputInfo does not provide system-wide user input information across all running sessions. Rather, GetLastInputInfo provides session-specific user input information for only the session that invoked the function.
Someone might get a wild hair and take a look at this, you never know.