And on that note, heading to see the family.  Merry (insert your own
acceptable season greeting or general wish for happiness here.)

On Sun, Dec 25, 2016 at 10:08 AM, Mike Bonner <bonnm...@gmail.com> wrote:

> Actually, the question boils down to "is the user active."  not "what key
> is pressed, was a screen scrolled(using what device) , or what button was
> clicked."  I could be wrong. /shrug  The only recent issue that needed to
> be solved is that scroll is an activity too, and there was no easy way to
> get lc to see that as an action.
>
> This ignores the whole question and lets lc poll the os to see if there
> was any HID action at all-- this (if I understand correctly)  being the
> ultimate goal.
> So yeah, if you scroll with you belkin, its a scroll.  As on a mighty
> mouse. But for this purpose (again, if I understand correctly)  it doesn't
> matter.  An action of any type, by a user (typing, scrolling, clicking,
> using a touch screen) shows that the user is actually sitting at the
> computer.
>
> If you have a different needs that just tracking idle/active time, this is
> not for you.
> Otherwise, there is no longer a need to look at keysdown() or
> mousescreenloc at all.  Just grab the number from the os. If the mouse has
> moved recently, it'll be small. Same for keypresses, scrolls, clicks,
> screen touches.
>
> So as in the example of catatonia.. Was it a poke, a tickle, a prod, a
> kick..  If all you're looking for is signs of brain activity, it doesn't
> matter.  (simplified of course, because in those cases examining responses
> to different stimuli DOES matter during evaluation.. but not so with the
> desired goal)
>
> On Sun, Dec 25, 2016 at 9:51 AM, Richmond Mathewson <
> richmondmathew...@gmail.com> wrote:
>
>> Aha: thanks.
>>
>> On 12/25/16 6:39 pm, Mike Bonner wrote:
>>
>>> The script does an end run of the whole situation.  The os itself is
>>> keeping track of the idle time between user events.  All the script does
>>> is
>>> grab the current value. And since only HID (human interface devices) are
>>> tracked, any mouse/keyboard activity in any app of the system will reset
>>> the timer.  So technically no, the scroll won't "register" in the lc
>>> stack
>>> (meaning it won't cause a handler to fire), but the OS does track HID
>>> actions..  All the stack does is request the information from the os (in
>>> a
>>> loop), that information being the time since the last user activity.
>>>
>>
>> So, the inevitable question is how one would use an idle time value to
>> tell
>> one that the end-user his performed a scroll (and whether up or down), as
>> all
>> those idle time values are are times in (?) micro-seconds.
>>
>> I assume (?) that, somewhere in the belly of the beast (Mac OS) a HID
>> performed action
>> must register as such, and also as WHICH HID was used, and WHAT action
>> was performed on
>> that HID.
>>
>> A forward scroll on my Belkin Nostromo is just as much a forward scroll
>> as one on my mighty mouse.
>>
>> The question that started this thread concerns NOT whether one can pick
>> up signals that HIDs are
>> being used, but when they ARE being used, which of the activities being
>> performed is a scroll.
>>
>> This seems remarkably like the problem with other people:
>>
>> 1. We can generally tell when brain activity is going on in other people
>> (however, c.f. catatonia),
>> and we can stick electrodes into parts of the human brain so that we can
>> pick up electric pulses
>> that tell us when the brain is receiving signals from outside the body.
>>
>> 2. What cannot (as far as I am aware) be worked out (if one is not
>> cheating and looking at who
>> is poking your volunteer in the stomach with a chopstick) is what is
>> being done to make the brain
>> register those signals.
>>
>> Richmond.
>>
>>
>>>
>>>
>>> On Sun, Dec 25, 2016 at 9:29 AM, Richmond Mathewson <
>>> richmondmathew...@gmail.com> wrote:
>>>
>>> Does that mean that if, say, I have a stack running your script in the
>>>> stackScript
>>>> and I'm scrolling a window in Firefox that that scrolling will register
>>>> in
>>>> the LC stack?
>>>>
>>>> The reason I am asking that question is because I don't quite understand
>>>> how one effect a mouseUp
>>>> while one is scrolling with one's mouse at the same time and the mouseUp
>>>> not affecting the frontmost app.
>>>>
>>>> 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 <p...@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@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@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@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@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@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to