Jump to content

Problem with _Timer_GetIdleTime() and Windows 10 Version 1511


Recommended Posts

I was wondering if anyone have any solution for this...

Consider the following small script.

 

#include <Timers.au3>

HotKeySet("+{ESC}", "_Quit")

While 1
    SplashTextOn("Test of idle timer. Shift-Esc to quit.", "This timer should go up if you do not touch anything." & @CRLF & @CRLF & _Timer_GetIdleTime(),-1,100)
    Sleep(1000)
WEnd

Func _Quit()
    SplashOff()
    Exit
EndFunc

All it does is show the current idle time from _Timer_GetIdleTime().

 

Now, if you have Windows 10 and have updated to Version 1511 (Check winver. Its the big November update), Game Controller movements no longer reset the timer for some reason.

I have a software that automatically lowers the volume of the machine (ment for arcade machines that are on 24/7) after it has been idle for a while and with this recent change, if you are playing a game using a Game Controller, the audio fades out because _Timer_GetIdleTime() says you are idle.

 

Anyone have any ideas or solutions/workarounds? I tried looking for a small "Has the joystick been moved" UDFs but they are all too big and only work on the primary game controller (I have 5 connected).

 

Thanks in advance!

Edited by Turranius
Link to comment
Share on other sites

Here you were complaining that the timer never went past 16, and now you're saying the same thing is causing the idle timer to never reset? Are these 2 scenarios the same situation, or are you having two different problems?

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

They are not related. I've been googling some more on this and this is what I found out. Please bare with me.

 

With the release version of Windows 10 (10240?), it had a bug. Moving the game controllers reset the idle time, and thus _Timer_GetIdleTime()

With the release of version 1511 (big november update), the problem was apparently fixed. Game Controllers only do NOT reset the idle timer, as Microsoft apparently thinks that is correct. When I googled this, it seems that "problem" has been happening for people for a long time (before Windows 10).

The "16ms" problem I wrote about earlier was because of the BlissBox device. It sends out a signal every 16 seconds which, in the release version of Windows 10, reset the idle timer every 16ms. That is what the previous post was about. With Windows 10 Version 1511, it no longer resets the idle time, since Windows does not care about game controllers.

 

To make a long story slighly shorter, I got it the wrong way around. I thought the game controllers WERE supposed to reset the idle time but stopped doing it with update 1511, but its actually the other way. Game controllers should not reset it and it was fixed to no longer do that in the big Windows 10 version 1511 update.

 

So, what I am asking for right now is basically, is there an easy way to detect if a game controller ha been pressed/used, so I can combine that with _Timer_GetIdleTime() to really see if the user is using the computer..

 

Sorry if this got confusing.

 

 

 

Edited by Turranius
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...