Jakie są wartości ascii w górę w dół w lewo w prawo?
Jakie są wartości ASCII klawiszy strzałek? (góra / dół / lewo / prawo)
9 answers
Nie ma prawdziwych kodów ascii dla tych kluczy jako takich, musisz sprawdzić kody skanowania tych kluczy, znane jako kody Make and Break zgodnie z informacjami helppc. Powodem, dla którego kody brzmią "ascii", jest to, że kody klawiszy są obsługiwane przez stare przerwanie BIOS-u 0x16 i przerwanie klawiatury 0x9.
Normal Mode Num lock on Make Break Make Break Down arrow E0 50 E0 D0 E0 2A E0 50 E0 D0 E0 AA Left arrow E0 4B E0 CB E0 2A E0 4B E0 CB E0 AA Right arrow E0 4D E0 CD E0 2A E0 4D E0 CD E0 AA Up arrow E0 48 E0 C8 E0 2A E0 48 E0 C8 E0 AA
Dlatego patrząc na kody następujące po E0 dla kodu klucza Make, takie jak odpowiednio 0x50, 0x4b, 0x4d, 0x48, to jest miejsce, w którym powstaje zamieszanie patrzenie na kody kluczy i traktowanie ich jako 'ascii'... odpowiedź brzmi nie ponieważ platforma jest różna, System Operacyjny jest różny, pod Windows będzie miał kod klucza Wirtualnego odpowiadający tym klawiszom, niekoniecznie taki sam jak kody BIOS, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT.. można to znaleźć w oknach plików nagłówkowych C++.h, o ile pamiętam w folderze dołączonym SDK.
Nie polegaj na kodach kluczy, aby miały te same "identyczne kody ascii" pokazane tutaj, ponieważ system operacyjny będzie przeprogramuj cały kod BIOS w dowolny sposób, jaki OS uzna za odpowiedni, oczywiście można się tego spodziewać, ponieważ ponieważ kod BIOS jest 16-bitowy, a system operacyjny (obecnie jest 32-bitowy tryb chroniony), oczywiście te kody Z BIOS-u nie będą już ważne.
W związku z tym oryginalne przerwanie klawiatury 0x9 i przerwanie BIOSu 0X16 zostaną usunięte z pamięci po załadowaniu BIOSu i gdy system operacyjny w trybie chronionym rozpocznie ładowanie, zastąpi ten obszar pamięci i zastąpi go własnym 32-bitowym obsługa trybu chronionego do radzenia sobie z tymi kodami skanowania klawiatury.
Oto przykład kodu ze starych czasów programowania DOS, używającego Borland C v3:#include <bios.h> int getKey(void){ int key, lo, hi; key = bioskey(0); lo = key & 0x00FF; hi = (key & 0xFF00) >> 8; return (lo == 0) ? hi + 256 : lo; }
Ta rutyna faktycznie, zwrócił kody do góry, dół jest 328 i 336 odpowiednio, (nie mam kodu do lewej i prawej faktycznie, to jest w mojej starej książce kucharskiej!) Rzeczywisty scancode znajduje się w zmiennej lo
. Klucze inne niż A-Z, 0-9, miały kod skanowania 0 za pomocą procedury bioskey
.... dodano powód 256, ponieważ zmienna lo
ma kod 0, a zmienna hi
ma kod skanowania i dodaje do niej 256, aby nie mylić z kodami 'ascii'...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-20 21:40:05
W skrócie:
Strzałka w lewo: 37
strzałka w górę: 38
strzałka w prawo: 39
strzałka w dół: 40
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-20 17:32:15
Tak naprawdę odpowiedź na to pytanie zależy od tego, jakiego systemu operacyjnego i języka programowania używasz. Nie ma "kodu ASCII" jako takiego. System operacyjny wykrywa naciśnięcie klawisza strzałki i uruchamia zdarzenie, które programy mogą przechwycić. Na przykład na nowoczesnych maszynach z systemem Windows otrzymamy Zdarzenie WM_KEYUP lub WM_KEYDOWN. Przekazuje ona 16-bitową wartość zwykle w celu określenia, który klucz został wciśnięty.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-20 17:33:33
Wartości ascii z:
Klucz do góry-224 72
Klucz do dołu-224 80
Klawisz Lewy-224 75
Klucz Prawy-224 77
Każda z nich ma dwie wartości całkowite dla wartości ascii, ponieważ są to specjalne klucze, w przeciwieństwie do kodu$, który jest po prostu 36. Te 2-bajtowe klucze specjalne zwykle mają pierwszą cyfrę jako 224 lub 0. można to znaleźć za pomocą F # w windows, lub klawisz delete.
EDIT: to może być unicode patrząc wstecz, ale działają.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-30 15:05:56
Jeśli programujesz w OpenGL, użyj GLUT. Poniższa strona powinna pomóc: http://www.lighthouse3d.com/opengl/glut/index.php?5
GLUT_KEY_LEFT Left function key
GLUT_KEY_RIGHT Right function key
GLUT_KEY_UP Up function key
GLUT_KEY_DOWN Down function key
void processSpecialKeys(int key, int x, int y) {
switch(key) {
case GLUT_KEY_F1 :
red = 1.0;
green = 0.0;
blue = 0.0; break;
case GLUT_KEY_F2 :
red = 0.0;
green = 1.0;
blue = 0.0; break;
case GLUT_KEY_F3 :
red = 0.0;
green = 0.0;
blue = 1.0; break;
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-20 17:39:25
Możesz to sprawdzić kompilując i uruchamiając ten mały program C++.
#include <iostream>
#include <conio.h>
#include <cstdlib>
int show;
int main()
{
while(true)
{
int show = getch();
std::cout << show;
}
getch(); // Just to keep the console open after program execution
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-30 11:22:21
Możesz użyć specjalnej funkcji do aktywacji nawigacji w celu programowania. Poniżej znajduje się przykładowy kod dla niego.
void Specialkey(int key, int x, int y)
{
switch(key)
{
case GLUT_KEY_UP:
/*Do whatever you want*/
break;
case GLUT_KEY_DOWN:
/*Do whatever you want*/
break;
case GLUT_KEY_LEFT:
/*Do whatever you want*/
break;
case GLUT_KEY_RIGHT:
/*Do whatever you want*/
break;
}
glutPostRedisplay();
}
Dodaj to do swojej głównej funkcji
glutSpecialFunc(Specialkey);
Mam nadzieję, że to rozwiąże problem!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-22 11:47:57
Kody Ascii dla znaków strzałek są następujące: ↑ 24 ↓ 25 → 26 ← 27
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-26 23:00:56
Pobranie wartości z klawiatury pod windows pokazuje co następuje:
- Strzałka W Lewo = 2424832
- Strzałka W Prawo = 2555904
- Strzałka W Górę = 2490368
- Strzałka W Dół = 2621440
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-02 08:23:40