Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: xevuel
Biblioteki C/C++

VkKeyScanEx

[funkcja] Tłumaczy podany znak na odpowiadający mu kod wirtualnego klawisza używając podanych ustawień lokalnych.

Składnia

C/C++
#include <windows.h>

SHORT WINAPI VkKeyScanEx(
TCHAR ch,
HKL dwhkl
);

Argumenty

ArgumentOpis
chZnak, który zostanie przetłumaczony na odpowiadający mu kod wirtualnego klawisza.
dwhklLokalny identyfikator wejścia używany do przetłumaczenia danego znaku. Użyj funkcji » WinAPILoadKeyboardLayout, aby go uzyskać.

Zwracana wartość

Jeśli wywołanie funkcji powiedzie się, niższy bajt zwróconej wartości będzie zawierał wirtualny kod danego klawisza, a wyższy bajt dodatkowe informacje, które mogą być kombinacją następujących wartości:

Zwrócona wartośćOpis
1Klawisz Shift jest wciśnięty.
2Klawisz Ctrl jest wciśnięty.
4Klawisz Alt jest wciśnięty.
8Klawisz Hankaku jest wciśnięty.
16Zarezerwowane.
32Zarezerwowane.

Jeśli funkcja nie znajdzie kodu odpowiadającego danemu klawiszowi, zarówno niższy jak i wyższy bajt są ustawiane na -1.

Opis szczegółowy

Funkcja VkKeyScanEx tłumaczy podany znak na odpowiadający mu kod wirtualnego klawisza.

Identyfikator wejścia jest pojęciem szerszym niż układ klawiatury, ponieważ może on obejmować również konwerter speech-to-text, edytor IME, lub inne formy wejścia.

Dla układów klawiatury, które używają prawego klawisza Alt jako klawisza Shift (np. dla francuskiego układu klawiatury), stan wciśnięcia tego klawisza jest reprezentowany przez wartość 6, ponieważ jest on konwertowany wewnętrznie jako Ctrl+Alt.

Funkcja nie konwertuje znaków z klawiatury numerycznej (wirtualne klawisze od VK_NUMPAD0 do VK_DIVIDE). Jej celem jest konwertowanie znaków z głównej części klawiatury, dlatego znak '7' zostanie przetłumaczony na VK_7, a nie VK_NUMPAD7.

VkKeyScanEx jest używana przez aplikacje, które używają komunikatów WM_KEYUP i WM_KEYDOWN do zasygnalizowania wciśnięcia lub puszczenia klawisza.

Dodatkowe informacje

Ta funkcja zastąpiła funkcję » WinAPIVkKeyScan.

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
NagłówekWinuser.h (wewnątrz Windows.h)
BibliotekaUser32.lib
DLLUser32.dll
Nazwy Unicode i ANSIVkKeyScanExW (Unicode) i VkKeyScanExA (ANSI)

Przykład

C/C++
char wynik[ 512 ];
strcpy( wynik, "" );

SHORT result = VkKeyScanEx( 'A', LoadKeyboardLayout( "00000415", KLF_ACTIVATE ) ); //00000415 to identyfikator j. polskiego

sprintf( wynik, "%x", LOBYTE( result ) );
MessageBox( 0, wynik, 0, 0 );

sprintf( wynik, "%x", HIBYTE( result ) );
MessageBox( 0, wynik, 0, 0 );

Zagadnienia powiązane

VkKeyScanTłumaczy podany znak na odpowiadający mu kod wirtualnego klawisza. (funkcja)
GetKeyboardStateKopiuje stan 256 wirtualnych klawiszy do podanego bufora. (funkcja)
SetKeyboardStateKopiuje tablicę stanów poszczególnych klawiszy do odpowiedniej tablicy wywołującego wątku. (funkcja)
LoadKeyboardLayoutŁaduje nowy lokalny identyfikator układu wejścia do systemu. (funkcja)

Linki zewnętrzne