Delen via


Toetsenbordinvoer

In deze sectie wordt beschreven hoe het systeem toetsenbordinvoer genereert en hoe een toepassing die invoer ontvangt en verwerkt.

In deze sectie

Naam Beschrijving
Over toetsenbordinvoer Bespreekt de invoer van het toetsenbord.
toetsenbordinvoer gebruiken Behandelt taken die zijn gekoppeld aan toetsenbordinvoer.
toetsenbordinvoerreferentie Bevat de API-verwijzing.

Functies

Naam Beschrijving
ActivateKeyboardLayout- Hiermee stelt u de id van de landinstellingen voor invoer (voorheen de toetsenbordindelingsgreep genoemd) in voor de aanroepende thread of het huidige proces. Met de landinstellingsaanduiding voor invoer wordt een landinstelling en de fysieke indeling van het toetsenbord opgegeven.
BlockInput- Hiermee voorkomt u dat toetsenbord- en muisinvoer gebeurtenissen toepassingen bereiken.
EnableWindow- Hiermee kunt u muis- en toetsenbordinvoer in- of uitschakelen voor het opgegeven venster of besturingselement. Wanneer invoer is uitgeschakeld, ontvangt het venster geen invoer, zoals muisklikken en toetsdrukken. Wanneer invoer is ingeschakeld, ontvangt het venster alle invoer.
GetActiveWindow- Hiermee wordt de venstergreep opgehaald naar het actieve venster dat is gekoppeld aan de berichtenwachtrij van de aanroepende thread.
GetAsyncKeyState- Bepaalt of een sleutel omhoog of omlaag is op het moment dat de functie wordt aangeroepen en of de toets is ingedrukt na een vorige aanroep naar GetAsyncKeyState.
GetFocus- Haalt de ingang op naar het venster met de toetsenbordfocus, als het venster is gekoppeld aan de berichtenwachtrij van de aanroepende thread.
GetKeyboardLayout- Hiermee haalt u de actieve landinstellingen-id (voorheen de toetsenbordindeling genoemd) voor de opgegeven thread op. Als de parameter idThread nul is, wordt de landinstellingen-id voor de actieve thread geretourneerd.
GetKeyboardLayoutList Haalt de id's van de landinstellingen voor invoer (voorheen toetsenbordindelingsgrepen genoemd) op die overeenkomen met de huidige set invoerlandinstellingen in het systeem. De functie kopieert de id's naar de opgegeven buffer.
GetKeyboardLayoutName Haalt de naam van de actieve landinstellings-id voor invoer op (voorheen de toetsenbordindeling genoemd).
GetKeyboardState- Kopieert de status van de 256 virtuele sleutels naar de opgegeven buffer.
GetKeyNameText- Hiermee haalt u een tekenreeks op die de naam van een sleutel vertegenwoordigt.
GetKeyState- Haalt de status van de opgegeven virtuele sleutel op. De status geeft aan of de toets omhoog, omlaag of in-/uitschakelen (elke keer dat de toets wordt ingedrukt, wordt uitgeschakeld).
GetLastInputInfo Haalt de tijd van de laatste invoer gebeurtenis op.
IsWindowEnabled Bepaalt of het opgegeven venster is ingeschakeld voor muis- en toetsenbordinvoer.
LoadKeyboardLayout- Laadt een nieuwe id voor landinstellingen voor invoer (voorheen de toetsenbordindeling genoemd) in het systeem. Verschillende landinstellingen-id's voor invoer kunnen tegelijk worden geladen, maar slechts één per proces is tegelijk actief. Als u meerdere landinstellingen voor invoer laadt, kunt u snel schakelen tussen deze id's.
MapVirtualKey Vertaalt (wijst) een code van een virtuele sleutel om in een scancode of tekenwaarde, of vertaalt een scancode in een code van een virtuele sleutel.
Als u een ingang wilt opgeven voor de toetsenbordindeling die moet worden gebruikt voor het vertalen van de opgegeven code, gebruikt u de functie MapVirtualKeyEx.
MapVirtualKeyEx- Wijst een code van een virtuele sleutel toe aan een scancode of tekenwaarde, of vertaalt een scancode in een code van een virtuele sleutel. De functie vertaalt de codes met behulp van de invoertaal en een landinstellings-id voor invoer.
OemKeyScan- Hiermee worden OEMASCII-codes 0 tot en met 0x0FF toegewezen aan de OEM-scancodes en dienststatussen. De functie biedt informatie waarmee een programma OEM-tekst naar een ander programma kan verzenden door toetsenbordinvoer te simuleren.
RegisterHotKey- Definieert een systeembrede sneltoets.
SendInput- Synthetiseert toetsaanslagen, muisbewegingen en knopklikken.
SetActiveWindow- Hiermee wordt een venster geactiveerd. Het venster moet worden gekoppeld aan de berichtenwachtrij van de oproepthread.
SetFocus- Hiermee stelt u de toetsenbordfocus in op het opgegeven venster. Het venster moet worden gekoppeld aan de berichtenwachtrij van de oproepthread.
SetKeyboardState- Kopieert een matrix van 256 bytes met toetsenbordtoetsen in de tabel met toetsenbordinvoerstatussen van de aanroepende thread. Dit is dezelfde tabel die wordt geopend door de functies GetKeyboardState en GetKeyState. Wijzigingen in deze tabel hebben geen invloed op toetsenbordinvoer voor andere threads.
ToAscii- Hiermee worden de opgegeven code en toetsenbordstatus omgezet in het bijbehorende teken of de bijbehorende tekens. De functie vertaalt de code met behulp van de invoertaal en de fysieke toetsenbordindeling die wordt geïdentificeerd door de toetsenbordindelingsgreep.
Als u een ingang wilt opgeven voor de toetsenbordindeling die moet worden gebruikt om de opgegeven code te vertalen, gebruikt u de functie ToAsciiEx.
ToAsciiEx- Hiermee worden de opgegeven code en toetsenbordstatus omgezet in het bijbehorende teken of de bijbehorende tekens. De functie vertaalt de code met behulp van de invoertaal en de fysieke toetsenbordindeling die wordt geïdentificeerd door de landinstellings-id van de invoer.
ToUnicode- Hiermee worden de opgegeven code en toetsenbordstatus omgezet in het bijbehorende Unicode-teken of de bijbehorende Unicode-tekens.
Als u een ingang wilt opgeven voor de toetsenbordindeling die moet worden gebruikt om de opgegeven code te vertalen, gebruikt u de functie ToUnicodeEx.
ToUnicodeEx- Hiermee worden de opgegeven code en toetsenbordstatus omgezet in het bijbehorende Unicode-teken of de bijbehorende Unicode-tekens.
UnloadKeyboardLayout Hiermee wordt een landinstellings-id voor invoer (voorheen een toetsenbordindeling genoemd) uitgeladen.
UnregisterHotKey Hiermee wordt een sneltoets vrijgemaakt die eerder is geregistreerd door de aanroepende thread.
VkKeyScanEx- Hiermee wordt een teken omgezet in de bijbehorende code van de virtuele sleutel en de shiftstatus. De functie vertaalt het teken met behulp van de invoertaal en de fysieke toetsenbordindeling die wordt geïdentificeerd door de landinstellings-id van de invoer.

De volgende functies zijn verouderd.

Functie Beschrijving
GetKBCodePage- Haalt de huidige codepagina op.
keybd_event Synthetiseert een toetsaanslag. Het systeem kan een dergelijke gesynthetiseerde toetsaanslag gebruiken om een WM_KEYUP of WM_KEYDOWN bericht te genereren. De interrupthandler van het toetsenbordstuurprogramma roept de keybd_event functie aan.
VkKeyScan- Hiermee wordt een teken omgezet in de bijbehorende code van de virtuele toets en de shiftstatus voor het huidige toetsenbord.

Berichten

Naam Beschrijving
WM_GETHOTKEY Bepaalt de sneltoets die aan een venster is gekoppeld.
WM_SETHOTKEY Koppelt een sneltoets aan het venster. Wanneer de gebruiker op de sneltoets drukt, activeert het systeem het venster.

Meldingen

Naam Beschrijving
WM_ACTIVATE Verzonden naar zowel het venster dat wordt geactiveerd als het venster dat wordt gedeactiveerd. Als de vensters dezelfde invoerwachtrij gebruiken, wordt het bericht synchroon verzonden, eerst naar de vensterprocedure van het venster dat wordt gedeactiveerd en vervolgens naar de vensterprocedure van het venster op het hoogste niveau dat wordt geactiveerd. Als de vensters verschillende invoerwachtrijen gebruiken, wordt het bericht asynchroon verzonden, zodat het venster onmiddellijk wordt geactiveerd.
WM_APPCOMMAND Hiermee wordt een venster aangegeven dat de gebruiker bijvoorbeeld een gebeurtenis voor een toepassingsopdracht heeft gegenereerd door met de muis op een opdrachtknop van een toepassing te klikken of een opdrachttoets voor de toepassing op het toetsenbord te typen.
WM_CHAR Geplaatst in het venster met de toetsenbordfocus wanneer een WM_KEYDOWN bericht wordt vertaald door de TranslateMessage functie. Het WM_CHAR bericht bevat de tekencode van de toets die is ingedrukt.
WM_DEADCHAR Geplaatst in het venster met de toetsenbordfocus wanneer een WM_KEYUP bericht wordt vertaald door de functie TranslateMessage. WM_DEADCHAR geeft een tekencode op die wordt gegenereerd door een dode sleutel. Een dode sleutel is een sleutel die een teken genereert, zoals de umlaut (dubbele stip), die wordt gecombineerd met een ander teken om een samengesteld teken te vormen. Het umlaut-O-teken () wordt bijvoorbeeld gegenereerd door de dode sleutel voor het umlaut-teken te typen en vervolgens de O-toets te typen.
WM_HOTKEY Geplaatst wanneer de gebruiker op een sneltoets drukt die is geregistreerd door de RegisterHotKey functie. Het bericht wordt boven aan de berichtenwachtrij geplaatst die is gekoppeld aan de thread die de sneltoets heeft geregistreerd.
WM_KEYDOWN Geplaatst in het venster met de toetsenbordfocus wanneer een niet-systeemtoets wordt ingedrukt. Een niet-systeemsleutel is een toets die wordt ingedrukt wanneer de Alt-toets niet wordt ingedrukt.
WM_KEYUP Geplaatst in het venster met de toetsenbordfocus wanneer een niet-systeemsleutel wordt vrijgegeven. Een niet-systeemtoets is een toets die wordt ingedrukt wanneer de Alt-toets niet wordt ingedrukt of een toetsenbordtoets die wordt ingedrukt wanneer een venster de toetsenbordfocus heeft.
WM_KILLFOCUS Verzonden naar een venster direct voordat de toetsenbordfocus verloren gaat.
WM_SETFOCUS Verzonden naar een venster nadat het toetsenbord de focus heeft gekregen.
WM_SYSDEADCHAR Verzonden naar het venster met de toetsenbordfocus wanneer een WM_SYSKEYDOWN bericht wordt vertaald door de functie TranslateMessage. WM_SYSDEADCHAR geeft de tekencode op van een systeem dode sleutel, dat wil gezegd, een dode toets die wordt ingedrukt terwijl u de Alt-toets ingedrukt houdt.
WM_SYSKEYDOWN Geplaatst in het venster met de toetsenbordfocus wanneer de gebruiker op de F10-toets drukt (waarmee de menubalk wordt geactiveerd) of de Alt-toets ingedrukt houdt en vervolgens op een andere toets drukt. Het treedt ook op wanneer er momenteel geen venster de toetsenbordfocus heeft; In dit geval wordt het WM_SYSKEYDOWN bericht verzonden naar het actieve venster. Het venster dat het bericht ontvangt, kan onderscheid maken tussen deze twee contexten door de contextcode in de parameter lParam te controleren.
WM_SYSKEYUP Geplaatst in het venster met de toetsenbordfocus wanneer de gebruiker een toets laat verschijnen die werd ingedrukt terwijl de Alt-toets werd ingedrukt. Het treedt ook op wanneer er momenteel geen venster de toetsenbordfocus heeft; in dit geval wordt het WM_SYSKEYUP bericht verzonden naar het actieve venster. Het venster dat het bericht ontvangt, kan onderscheid maken tussen deze twee contexten door de contextcode in de parameter lParam te controleren.
WM_UNICHAR Geplaatst in het venster met de toetsenbordfocus wanneer een WM_KEYDOWN bericht wordt vertaald door de TranslateMessage functie. Het WM_UNICHAR bericht bevat de tekencode van de toets die is ingedrukt.

Structuren

Naam Beschrijving
HARDWAREINPUT- Bevat informatie over een gesimuleerd bericht dat wordt gegenereerd door een ander invoerapparaat dan een toetsenbord of muis.
INPUT- Bevat informatie die wordt gebruikt voor het synthetiseren van invoerevenementen, zoals toetsaanslagen, muisbewegingen en muisklikken.
KEYBDINPUT- Bevat informatie over een gesimuleerde toetsenbordgebeurtenis.
LASTINPUTINFO- Bevat de tijd van de laatste invoer.
MOUSEINPUT- Bevat informatie over een gesimuleerde muisgebeurtenis.

Constanten

Naam Beschrijving
Virtual-Key codes De symbolische constante namen, hexadecimale waarden en muis- of toetsenbordequivalenten voor de codes voor virtuele sleutels die door het systeem worden gebruikt. De codes worden weergegeven in numerieke volgorde.

Zie ook