From: Fabrice Bellard <fabrice@bellard.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Keyboard patch for windows
Date: Wed, 04 Aug 2004 23:03:05 +0200 [thread overview]
Message-ID: <41114F09.3030903@bellard.org> (raw)
In-Reply-To: <20040804103148.10A7.ERIK.KARLSSON@bonetmail.com>
From the windows API it seems that the bit 24 of lParam in the message
WM_KEYDOWN contains what you want. From the SDL source code, it seems to
be passed in the scancode field...
Fabrice.
Erik Karlsson wrote:
> The problem is that some of the keycodes are prefixed with an e0 prefix.
>
> Examples:
> Numpad right arrow/6: 4d Right arrow: e0,4d
> Numpad left arrow/4: 4b Left arrow: e0,4b
> Left alt: 38 Right alt: e0,38
> Left control: 1d Right control: e0,1d
>
> The problem withs SDL is that SDL strips off the e0 prefix. The result
> is that it is impossible to distinguish between e.g. the arrow keys and
> the arrow on the numeric keypad and between left and right alt and
> contol keys.
>
> Another advantage with low level keyboard hooks is that you can capture
> system key combinations such as Alt-Tab and Ctrl-Esc. sdl_grab_start()
> does not do that on windows.
>
> I agree that it is unclean to have native windows code in an SDL driver.
> It would of course be better to have a separate keyboard driver for
> windows. The problem is that the qemu architecture does not allow
> separate drivers for keyboard, mouse and display. This makes a windows
> driver just for the keybord impossible. A windows driver would then need
> to implement keyboard, mouse and display natively on windows.
>
> Erik
>
>
>>Strange since Windows should send the raw keycodes directly to SDL. I
>>think your patch is too complicated to be integrated in an SDL target.
>>Can you find a simpler solution ?
>>
>>Fabrice.
>>
>>Erik Karlsson wrote:
>>
>>>Keyboard input via SDL on windows it not working well. It is for example
>>>impossible to distinguish between left and rihgt alt and control and
>>>between the arrow keys and the numpad arrow keys.
>>>
>>>I have fixed this problem by using windows low level keyboadrd hooks
>>> (SetWindowsHookEx, WH_KEYBOARD_LL) instead of SDL for keyboard input.
>>>
>>>Low level keybord hooks should work on windows NT 4.0 SP3 or later, eg.
>>>windows 2000 and windows XP but not on windows 9x. For this reason I use
>>>another method if low level keyboard hooks are unsupported. Tihis method
>>>involves hooking up the winidow procedure and using some ugly fixes and
>>>there is still problems when you press the two shift keys simultaneously.
>>>I have however not tested this method on win9x because i have no win9x
>>>machine to test it on.
>>>
>>>Erik
>
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
next prev parent reply other threads:[~2004-08-04 21:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-19 12:55 [Qemu-devel] Keyboard patch for windows Erik Karlsson
2004-08-03 21:11 ` Fabrice Bellard
2004-08-04 8:38 ` Erik Karlsson
2004-08-04 10:05 ` Laurent Amon
2004-08-04 10:16 ` Pierre d'Herbemont
2004-08-04 11:55 ` Laurent Amon
2004-08-04 15:53 ` Pierre d'Herbemont
2004-08-04 15:24 ` Jim C. Brown
2004-08-04 20:24 ` Lionel Ulmer
2004-08-04 21:00 ` Fabrice Bellard
2004-08-04 21:03 ` Fabrice Bellard [this message]
2004-08-05 0:08 ` Erik Karlsson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41114F09.3030903@bellard.org \
--to=fabrice@bellard.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.