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++

VkKeyScan

[funkcja] Tłumaczy podany znak na odpowiadający mu kod wirtualnego klawisza.

Składnia

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

SHORT WINAPI VkKeyScan(
TCHAR ch
);

Argumenty

ArgumentOpis
chZnak, który zostanie przetłumaczony na odpowiadający mu kod wirtualnego klawisza.

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 VkKeyScan tłumaczy podany znak na odpowiadający mu kod wirtualnego klawisza.

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.

VkKeyScan 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 została zastąpiona przez funkcję » WinAPIVkKeyScanEx. Można jej jednak nadal używać, jeśli nie jest potrzebne określenie układu klawiatury.

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 ANSIVkKeyScanW (Unicode) i VkKeyScanA (ANSI)

Przykład

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

char wynik[ 512 ];
strcpy( wynik, "" );

SHORT result = VkKeyScan( 'A' );

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

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

Zagadnienia powiązane

VkKeyScanExTłumaczy podany znak na odpowiadający mu kod wirtualnego klawisza używając podanych ustawień lokalnych. (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)

Linki zewnętrzne