Patent ID: 7486276

Claim:
A key event controlling apparatus for acquiring a key event that indicates a result of a key operation from a key delivering device that notifies a change in a state of a key, and for delivering the acquired key event to a predetermined recipient program, the key event controlling apparatus comprising: a grab accepting section for accepting, from a first recipient program, a request to grab a desired key event, rather than accepting a request from a second recipient program that is a usual recipient of key events from the key delivering device; a grab requesting section for requesting, in accordance with the request from the first recipient program accepted by the grab accepting section, the key delivering device to deliver, to the key event controlling apparatus, all key events belonging to a key event request set that includes the desired key event, rather than in accordance with the request from the second recipient program, the key event request set being previously stored by the grab requesting section and including a plurality of key events to be issued until a time at which a key event corresponding to a result of an operation by a user is ascertained; a key event retaining section for retaining any one key event that alone would not allow the operation of the user to be ascertained, the any one key event being retained from a plurality of key event notified from the key delivering device; a delivered key event determining section for (i) retaining one key event ascertainment set that includes a plurality of key events that are together necessary for ascertaining a specific key operation, and (ii) for determining that all of the key events included in the key event ascertainment set are to be delivered, the determination being made when all of the key events included in the key event ascertainment set are retained in the key event retaining section; and a key event deletion section for, upon receiving a notification of a predetermined key event from the key delivering device, deleting a predetermined key event retained in the key event retaining section.