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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).