Sign in to follow this  
Followers 0
JesuZ

Check if any key is pressed

5 posts in this topic

Hello,

I was thinking, is there easier way to create script that would have timer in it,

that would be reseted at the begining of script, and on every key presses..

Without huge about of HotKeySets, than would all call same function...

My idea was create program, that could take care that I'm actually doing something on my computer, and if I don't (timer limit goes over x-mins)

It would do something like turn on web-radio or something :)

On my case shoutdown few my programs...

Share this post


Link to post
Share on other sites



check in the help file for _Timer_GetIdleTime()

Share this post


Link to post
Share on other sites

That's almost what I'm looking for,

but is there way to make that function ignore mouse movement?

And only count idletime from keypresses?

Share this post


Link to post
Share on other sites

_Timer_GetIdleTime() - a good idea. But if you need to check whether pressed at the moment, any key, this is function to do so.

func _IsAnyPressed()
    
    local $Ret, $tState = DllStructCreate('byte[256]')
    
    $Ret = DllCall('user32.dll', 'int', 'GetKeyboardState', 'ptr', DllStructGetPtr($tState))
    if (@error) or ($Ret[0] = 0) then
        return SetError(1, 0, 0)
    endif
    
    for $i = 0x01 to 0xFF
        switch $i
            case 0x0A, 0x0B, 0x0E to 0x0F, 0x16, 0x1A, 0x1C to 0x1F, 0x3A to 0x40, 0x5E, 0x88 to 0x8F, 0x97 to 0x9F, 0xB8 to 0xB9, 0xC1 to 0xDA, 0xE0, 0xE8
                continueloop
            case else
                if BitAND(DllStructGetData($tState, 1, $i + 1), 0xF0) > 0 then
                    return 1
                endif
        endswitch
    next
    return 0
endfunc; _IsAnyPressed

Share this post


Link to post
Share on other sites

You could potentially add the above _IsAnyPressed() in an adlib function, so it will run periodically, while the rest of your script can carry on and do its thing.

Share this post


Link to post
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
Sign in to follow this  
Followers 0