Detect scroll activity (when LC is not frontmost)

Richmond Mathewson richmondmathewson at gmail.com
Sun Dec 25 11:55:26 EST 2016


Aha.

On 12/25/16 6:42 pm, Mike Bonner wrote:
> Using my script, the numbers will change every 2 seconds.  If you do
> nothing and watch the numbers, the digits to the left of the decimal should
> increase by approximately 2 each cycle.
> If you type, scroll, whatever, the number should shrink (possibly even a 0
> to the left of the decimal)

The problem lies in the word "whatever".

A scroll may shrink the number; so may other things; and that's the rub.

I've got a pain in my stomach:

1. Wind?

2. Acidity?

3. Swallowed a paperclip?

The pain is not sufficient in and of itself to work out what the cause 
of the pain is.
>
> What version of osx are you using?

I'm using Mac OS 10.7.5

Richmond.

>
> On Sun, Dec 25, 2016 at 9:39 AM, Richmond Mathewson <
> richmondmathewson at gmail.com> wrote:
>
>> I have just tried this:
>>
>> 1. When the stack is frontMost it puts
>>
>> a large digit number (5-8 after the decimal point) into the field at all
>> sorts of
>> intervals.
>>
>> There is no obvious connexion between any of these numbers and the keys I
>> am currently bashing on
>> to type this message, nor when I use the scroll wheel on my mouse,
>>
>> numbers are changing even when I am doing nothing beyod sitting here with
>> my mouth open
>> watching the stack and wondering how those numbers can be shown to have
>> any direct
>> correspondence with any user input.
>>
>> 2. Certainly the stack is picking something up, but if it is detecting
>> scroll activity it is not doing it
>> in any obviously useful fashion.
>>
>> Richmond.
>>
>> On 12/25/16 5:56 pm, Mike Bonner wrote:
>>
>>> I have an answer..
>>>
>>> Heres a sample script:
>>> local sRunning
>>>
>>> on mouseUp
>>> if sRunning is empty then put false into sRunning
>>> put not sRunning into sRunning
>>> loopit
>>> end mouseUp
>>>
>>> command loopit
>>> if sRunning then
>>> put the last word of (shell("ioreg -c IOHIDSystem |grep Idle")) into tIdle
>>> put tIdle / 1000000000 into field 1
>>> send "loopit" to me in 2 sec
>>> end if
>>> end loopit
>>>
>>> The script is in a button, and I have a single field on the card.  The
>>> math
>>> is done to convert to seconds of idle.
>>>
>>> The are only 2 disclaimers here.  First is that the value returned pre
>>> 10.3
>>> is hex so you'd have to handle that if you have an earlier osx.  10.3 and
>>> after this solution should work fine.
>>>
>>> The second issue is is that on mac 10.12, the idle time won't update on
>>> typing.  Its an osx issue for that specific version, but worst case you
>>> already have a method to track keypresses.
>>>
>>> On Sun, Dec 25, 2016 at 8:21 AM, Paul Dupuis <paul at researchware.com>
>>> wrote:
>>>
>>> On 12/25/2016 10:05 AM, Terry Vogelaar wrote:
>>>>> So it starts to become clear that it might not be possible to do what I
>>>>>
>>>> want. Although I hope to be wrong about that.
>>>>
>>>> I think it is very unlikely you can do this in LC - without externals or
>>>> LCB widgets from "infinite Livecode".
>>>>
>>>> The active mouse and keyboard drivers capture events from these devices
>>>> and pass that information to the operating system, which massages the
>>>> data and passed a higher level of events on to the active application,
>>>> which looks for such events and handles them. In the case of the
>>>> LiveCode engine - or any app built on the LC engine - that is executing
>>>> applicable messages for your scripts to handle.
>>>>
>>>> Most productivity tracking software works by effectively inserting code
>>>> into where the device drivers meet the operating system, so that mouse
>>>> and keyboard events are captured by the productivity app's as well as
>>>> being sent by the OS to the active application as normal.
>>>>
>>>> Using LCB and LC9.0 you might be able to write an LCB widget that does
>>>> this, but I am not familiar enough with current OSX APIs for event
>>>> capture or drivers under OSX to or the state of work in LC9.0 on
>>>> integrating OS API calls to say for sure.
>>>>
>>>> You are unlikely to be able to do what you want in LiveCode script alone.
>>>>
>>>>
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>
>>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list