Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > alt.os.development > #8876

Re: Flow of keystroke messages in a UI

From Bernhard Schornak <schornak@web.de>
Newsgroups alt.os.development
Subject Re: Flow of keystroke messages in a UI
Date 2015-10-05 17:38 +0200
Organization A noiseless patient Spider
Message-ID <muu5eh$1s2$1@dont-email.me> (permalink)
References <mulmv6$1hv$1@dont-email.me> <mumj59$g7p$1@dont-email.me> <murcl6$e4a$1@dont-email.me>

Show all headers | View raw


James Harris wrote:


> On 02/10/2015 19:43, Bernhard Schornak wrote:
>> James Harris wrote:
>>
>>> Other examples are viewing Youtube videos or reading Yahoo mail in a
>>> browser. Such sites can prevent
>>> a user typing Alt+F from getting the File menu and, instead, interpret
>>> such keystrokes in the web
>>> page. That's a similar problem to the one mentioned above.
>>
>> The underlying mechanism is called "accellerator table". Each
>> GUI program can re-define keystrokes (incl. combinations with
>> ALT, CONTROL, SHIFT) by adding an ACCELLERATORS statement and
>> the key definitions in its resource file (*.rc).
>
> I see that at
>
>    https://en.wikipedia.org/wiki/Accelerator_table
>
> though it seems to be a Microsoft term for basic shortcut key handling.


Accellerators are part of the message subsystem. You have to
register your accellerator table (LdAccel() is a wrapper for
this task):

            movq  %rbp,       %rcx              # RCX = Hinstance
            movl  $0x1080,    %edx              # RDX = ID
            call  _LdAccel
            testq %rax,       %rax              # error?
            je    1f
            movq  %rax,       %rbx              # RBX = Haccel

After registering, the keys assigned to message IDs (similar
to the IDs assigned to GUI items like buttons or checkboxes)
trigger a message with the assigned ID. TrAccel() is another
wrapper calling the API function responsible for translation
from keystrokes to message IDs:

            leaq  0x80(%rsp), %rcx              # RCX = EA MSG
            xorl  %edx,       %edx              # all windows
            xorl  %r8d,       %r8d              # NULL
            xorl  %r9d,       %r9d              # NULL
          0:call  _GetMsg
            testl %eax,       %eax              # WM_QUIT?
            je    1f
            incl  %eax                          # shorter than cmp $0xFFFFFFFF,%eax
            je    0b
            movq  %rcx,       %r8               # R08 = EA MSG
            movq  %rbx,       %rdx              # RDX = Haccel
            movq  %rdi,       %rcx              # RCX = HWND
            call  _TrAccel
            leaq  0x80(%rsp), %rcx              # RCX = EA MSG
            xorl  %edx,       %edx              # all windows
            xorl  %r8d,       %r8d              # NULL
            xorl  %r9d,       %r9d              # NULL
            call  _TrnsMsg
            call  _DispMsg
            jmp   0b
          1:...                                 # exit procedure


GetMsg (GetMessageA), TrnsMsg (TranslateMessage) and DispMsg
(DispatchMessage) are wrappers provided by my libraries...


>> It is useful
>> if sparsely used combinations get new meaning, but might also
>> be abused to prevent the user from saving copyrighted data to
>> her/his hard drive.
>
> I am not sure about this as an effective mechanism wrt copyright. Most of the actions of the
> containing window can also be carried out using the mouse. There seem to be at least two problems
> with letting contained apps see things like Alt+key combinations:
>
> 1. Writers of contained web apps get carried away (they do) and redefine keys that the user might
> want not to be overridden - such as Alt+F.
>
> 2. Even if such app writers were to stay away from key combinations which have a known meaning to
> the browser they may still fall foul of the app being run by someone with another language. For
> example, Alt+H might bring down the Help menu in English but H does not appear in the Spanish word
> for Help which, I think, is Ayuda.
>
> Perhaps Alt should be reserved for the browser (if web browsing) or the window (if running a normal
> app in its own window).
>
> Perhaps apps in browsers could be allowed to use Control for keystroke handling.
>
> Maybe that's too simple but it would make it clear to the user how to access each set of functions:
> Alt for the browser, Control for the app in the browser. ISTM better than using some Alt keys for
> the browser and other Alt keys for the app.


For OS/2, IBM introduced CUA ("common user access"), a bunch
of rules, which key combinations should be assigned to which
actions, e.g.: F1 = help, F3 = exit, and so on. The big idea
behind CUA was to establish a set of common keys to simplify
the handling of GUI applications.

https://en.wikipedia.org/wiki/IBM_Common_User_Access

When OS/2 disappeared, everything got lost, and a good idea
became history. Nowadays, we have to live with *bazillions*
of different wheels...

Nevertheless, accellerators are a mighty tool to prevent the
user from copying restricted material - a mouse click can be
"caught" as easy as a keystroke, and application programmers
can use hooks to catch *any* unwanted action (whether it was
typed in or clicked on does not matter).


Greetings from Augsburg

Bernhard Schornak

Back to alt.os.development | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-02 11:42 +0100
  Re: Flow of keystroke messages in a UI Bernhard Schornak <schornak@web.de> - 2015-10-02 20:43 +0200
    Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-04 15:23 +0100
      Re: Flow of keystroke messages in a UI Bernhard Schornak <schornak@web.de> - 2015-10-05 17:38 +0200
  Re: Flow of keystroke messages in a UI "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-02 17:17 -0400
    Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-04 16:36 +0100
      Re: Flow of keystroke messages in a UI "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-04 21:27 -0400
        Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-05 15:01 +0100
          Re: Flow of keystroke messages in a UI "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-05 21:57 -0400
            Re: halting Adobe Flash videos with Mozilla Firefox, was [Re: Flow of keystroke messages in a UI] "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-26 04:35 -0400
            Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-12-27 12:40 +0000
              Re: Flow of keystroke messages in a UI "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-12-27 15:51 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-03 12:08 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-03 14:55 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-13 17:58 +0000
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-15 11:32 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-16 03:29 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-16 13:44 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-16 12:55 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-16 19:55 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-18 07:39 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-18 22:45 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-19 22:28 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-27 13:27 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-27 17:20 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-28 11:03 +0000
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-22 17:43 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-23 13:17 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-27 13:42 +0000
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-04-08 09:14 +0100
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-14 09:56 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-14 09:11 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-14 15:58 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-15 05:55 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-15 15:57 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-16 05:33 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-24 06:16 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-24 18:03 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-28 06:25 +0000
                Re: Flow of keystroke messages in a UI "Alexei A. Frounze" <alexfrunews@gmail.com> - 2016-02-28 00:21 -0800
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-28 08:45 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-28 20:40 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-03-02 14:49 +0000
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-03-02 21:50 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-03-05 06:09 +0000
                OT politics was Re: Flow of keystroke messages in a UI "Kerr Mudd-John" <admin@127.0.0.1> - 2016-03-05 12:40 +0000
                Re: OT politics was Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-03-05 20:11 -0500
                Re: OT politics, was [Re: Flow of keystroke messages in a UI] Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-03-05 20:11 -0500
                Re: OT politics, was [Re: Flow of keystroke messages in a UI] James Harris <james.harris.1@gmail.com> - 2016-03-17 16:35 +0000
                Re: OT politics, was [Re: Flow of keystroke messages in a UI] Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-03-17 21:02 -0400
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-24 20:09 -0500
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-02-25 14:55 +0000
                Re: Flow of keystroke messages in a UI "Alexei A. Frounze" <alexfrunews@gmail.com> - 2016-02-16 03:56 -0800
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-17 04:21 -0500
                Re: Flow of keystroke messages in a UI "Alexei A. Frounze" <alexfrunews@gmail.com> - 2016-02-24 02:12 -0800
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-24 18:03 -0500
                Re: Flow of keystroke messages in a UI "Alexei A. Frounze" <alexfrunews@gmail.com> - 2016-02-28 02:53 -0800
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-02-28 20:15 -0500
                Re: Flow of keystroke messages in a UI "Alexei A. Frounze" <alexfrunews@gmail.com> - 2016-03-27 20:37 -0700
                Re: Flow of keystroke messages in a UI Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-03-28 18:23 -0400
                Re: Flow of keystroke messages in a UI "Alexei A. Frounze" <alexfrunews@gmail.com> - 2016-03-27 21:10 -0700
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-15 14:34 +0000
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2016-01-15 15:10 +0000
        Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-05 15:39 +0100
  Re: Flow of keystroke messages in a UI "wolfgang kern" <nowhere@never.at> - 2015-10-03 12:48 +0200
    Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-04 17:00 +0100
      Re: Flow of keystroke messages in a UI "wolfgang kern" <nowhere@never.at> - 2015-10-04 23:32 +0200
        Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-05 14:05 +0100
          Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-05 15:17 +0100
            Re: Flow of keystroke messages in a UI "wolfgang kern" <nowhere@never.at> - 2015-10-06 10:35 +0200
              Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-06 16:28 +0100
                Re: Flow of keystroke messages in a UI "wolfgang kern" <nowhere@never.at> - 2015-10-06 19:14 +0200
                Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-10-06 20:02 +0100
          Re: Flow of keystroke messages in a UI "wolfgang kern" <nowhere@never.at> - 2015-10-06 10:46 +0200
            Re: Flow of keystroke messages in a UI "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-07 01:16 -0400
            Re: Flow of keystroke messages in a UI James Harris <james.harris.1@gmail.com> - 2015-12-27 12:50 +0000
              Re: Flow of keystroke messages in a UI "wolfgang kern" <nowhere@never.at> - 2015-12-27 23:22 +0100

csiph-web