CyberPress
közéleti magazin
cyberpress@sopron.hu
2025. április 5., szombat, Vince napja


Irodalmi Kávéház

Intranet Galéria

Apróhirdetések

Képeslapok

Soproni Képindex

Polgármesteri Hivatal

ZÓNÁK
Főoldal
Lapszemle
  Lapszemle
Kultúra
  KultúrVáros
  Lélektől lélekig
  SzínházVilág
  Soproni Ünnepi Hetek
  Borváros
Regionális kulturális programajánló
  Színház
  Kiállítás
  Rendezvények
  Hangverseny-Zene
Cyber Kurír
  Hírek - események
  Szomszédvár - Régió
  Soproni Snassz
Európai Unió
  EU
Cyber hírek
  Közélet
  SopronMedia
  Városháza
  Sport
Szórakozás
  Fesztiválgájd
  HangFal
  Mi1más
  Diákélet - diákszáj
  ViccGödör
Gazdaság
  Kereskedelmi és Iparkamara
Sport - szabadidő
  Sportcentrum
  Száguldó Cirkusz
Tudomány-technika
  Űrvadász
  Egészség
Környezet
  Borostyán
  Egészség

Dr. Bit  

Programozzunk Együtt!

				Billentyűzetkezelés II.
A billentyűzeten a betük, számok, F1-F12, ESC, ENTER 
stb. túl van még néhány
speciális billentyű is. Ezek: NUMLOCK, CAPSLOCK, SCROLLLOCK, 
CTRL, ALT, 
bal és jobb SHIFT, valamint INS. Ezeknek az 
állapotát a BIOS-ból kérdezhetjük
le a hex 0040:0017 bájtból. Egy bájt 8 bitből áll, ezeknek az 
állapota jelzi
a ki- és bekapcsolt illetve a lenyomott és felengedett 
állapotot.
A bájt felépítése:
 0. bit 1, ha a jobb oldali Shift lenyomva
 1. bit            bal oldali Shift lenyomva
 2. bit            Ctrl lenyomva
 3. bit            Alt lenyomva
 4. bit            ScrollLock bekapcsolva
 5. bit            NumLock bekapcsolva
 6. bit            CapsLock bekapcsolva
 7. bit            Insert bekapcsolva
Ebből nemcsak kiolvashatjuk a beállításokat, de meg is 
változtathatjuk.
Például van lehetőség arra, hogy átállítsuk a CAPSLOCK-ot stb.
Itt egy kis példaprogram, ami kiirja, hogy mi milyen állapotban 
van:
/* kboard2.c - Egy kicsit bonyulultabb példa a 
billentyuzetkezelésre */
#include <stdio.h>
#include <dos.h>
#include <conio.h>
struct {
  char Rshift        : 1;
  char Lshift        : 1;
  char Ctrl          : 1;
  char Alt           : 1;
  char ScrollLock    : 1;
  char NumLock       : 1;
  char CapsLock      : 1;
  char Insert        : 1;
} far *bit_var;
void main(void)
{
 (long)bit_var=0x0040*65536+0x0017;  //ez a byte a 40h-es szegmens 
17h-edik offszettjen van
 clrscr();
 while(!kbhit())
 {
  gotoxy(1,1);
  if (bit_var->Rshift)
	 printf("Jobb Shift lenyomva      n");
    else printf("Jobb Shift nincs lenyomvan");
  if (bit_var->Lshift)
	 printf("Bal Shift lenyomva      n");
    else printf("Bal Shift nincs lenyomvan");
  if (bit_var->Ctrl)
	 printf("Ctrl lenyomva      n");
    else printf("Ctrl nincs lenyomvan");
  if (bit_var->Alt)
	 printf("Alt lenyomva      n");
    else printf("Alt nincs lenyomvan");
  if (bit_var->ScrollLock)
	 printf("ScrollLock be n");
    else printf("ScrollLock ki n");
  if (bit_var->NumLock)
	 printf("NumLock be n");
    else printf("NumLock ki n");
  if (bit_var->CapsLock)
	 printf("CapsLock be n");
    else printf("CapsLock ki n");
  if (bit_var->Insert)
	 printf("Insert be n");
    else printf("Insert ki n");
 }
 getch();
}
/* Peldaprogram vege */
Nos, tehát ennyit billentyűzetkezelés témáról.
PET



2000. jĂşlius 11., kedd 00:00


címlap zóna archívum




© 1999-2007, Internet Sopron Egyesület