Opened 8 years ago

Closed 8 years ago

#40 closed task (fixed)

Todo: implement the keyboard capture code for Qt frontend

Reported by: Valery V. Sedletski Owned by:
Priority: major Milestone: VBox QT Interface
Component: Frontends Keywords: qt frontend keyboard hook helper
Cc:

Description

The old VBox port from year 2008 contains the code for capturing the keyboard via a keyboard hook DLL. It intercept all keyboard input including special keys and modifiers, hotkeys etc. Here I attached the patch for a Makefile to build a VBoxHlp.dll -- a helper DLL which contains a keyboard hook. The work remained is to refactor the keyboard code to different source files and classes. This is needed because the source code structure is changed in the upstream. Without this code, the Qt frontend may block PM on waiting the input events. It can be used though, if start the frontend like this:

VirtualBox.exe --startvm winxp

Then the selector window will be not running and no communication between them and the VM window. Also, the user experience is even better if you install the VBox additions and use mouse integration (see #29).

Attachments (1)

qtfront-vboxhlp.diff (1.3 KB) - added by Valery V. Sedletski 8 years ago.
Keyboard hook helper DLL

Download all attachments as: .zip

Change History (3)

Changed 8 years ago by Valery V. Sedletski

Attachment: qtfront-vboxhlp.diff added

Keyboard hook helper DLL

comment:1 Changed 8 years ago by Valery V. Sedletski

The old keyboard code is ported to new VirtualBox? code base with r108-r109. The original old changeset URL was https://www.virtualbox.org/changeset/5132 (it was the 1st code checkin, but I used revision https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Frontends/VirtualBox?rev=9203, which corresponds to VBox ver. 1.6.3. The code was removed much later and did not changed much since then.). So, the keyboard code is working now, and I close this ticket.

Last edited 8 years ago by Valery V. Sedletski (previous) (diff)

comment:2 Changed 8 years ago by Valery V. Sedletski

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.