Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ctrl +

[es] :: C/C++ programiranje :: ctrl +

[ Pregleda: 3814 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.verat.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon ctrl + 15.08.2001. u 20:52 - pre 276 meseci
Zna li neko kako da napisem neki kod koji ce odgovoriti na pritisak npr ctrl + p???


Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.rcub.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: ctrl + 15.08.2001. u 23:16 - pre 276 meseci
navedi platformu: dos/win/sus/bsd?

Cesto se neki "kontrolni znakovi" dobijaju tako sto prvo sledi 0x0, pa zatim kod (tako je pri direktnom citanju sa tastature), medjutim, neki kontrolni znakovi spadaju u opseg ASCII znakova (posto njih moze biti do 256/128, a tastature imaju 101/102+ tastera).

Jednostavan kod:
Code:

#include <stdio.h>
#include <conio.h>

int main () {
    char c;

    while (c=getch()) {
        printf("[%c] %.3dn",c,c);
    }
    return 0;
}

moze ti u DOSu dati odgovor na tvoje pitanje (ja dobijem 16 za ctr+p, tj. 0x10 ako bi se stampalo u hex).

Ovo je ponekad zgodan nacin da se sazna neki kod, ali ponekad je bolje pronaci referencu. Zasad, mislim da ce ti ovo posluziti. Ako te interesuje u Windowsu mogu da pronadjem koju poruku treba cekati (mozda i WM_CHAR daje informacije o tome da li je Ctrl pritisnut ali nisam siguran). Na UNIX platformama trenutno nemam nijednu operativnu masinu pa ne mogu da probam, ali ovo ti moze dati ideju, a mozes najverovatnije i direktno da citas sa konzole.

Toliko.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.verat.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: ctrl + 15.08.2001. u 23:41 - pre 276 meseci
Citat:
tOwk je napisao:
navedi platformu: dos/win/sus/bsd?

Cesto se neki "kontrolni znakovi" dobijaju tako sto prvo sledi 0x0, pa zatim kod (tako je pri direktnom citanju sa tastature), medjutim, neki kontrolni znakovi spadaju u opseg ASCII znakova (posto njih moze biti do 256/128, a tastature imaju 101/102+ tastera).

Jednostavan kod:
Code:

#include <stdio.h>
#include <conio.h>

int main () {
    char c;

    while (c=getch()) {
        printf("[%c] %.3dn",c,c);
    }
    return 0;
}

moze ti u DOSu dati odgovor na tvoje pitanje (ja dobijem 16 za ctr+p, tj. 0x10 ako bi se stampalo u hex).

Ovo je ponekad zgodan nacin da se sazna neki kod, ali ponekad je bolje pronaci referencu. Zasad, mislim da ce ti ovo posluziti. Ako te interesuje u Windowsu mogu da pronadjem koju poruku treba cekati (mozda i WM_CHAR daje informacije o tome da li je Ctrl pritisnut ali nisam siguran). Na UNIX platformama trenutno nemam nijednu operativnu masinu pa ne mogu da probam, ali ovo ti moze dati ideju, a mozes najverovatnije i direktno da citas sa konzole.

Toliko.



Hvaal mnogo...

Prvenstveno mi je potrebno za nrad na unix sistemima znaci neki linux/bsd mozda i dos

Probacu ovo sto si mi rekao...

Uz to cinimi se da postoji alternativa u ncurses ili curses biblioteci....

Ako neko zna jos neki predlog, dobro doslo je
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.InfoSky.Net



+2 Profil

icon Re: ctrl + 16.08.2001. u 18:04 - pre 276 meseci
Postoji funkcija bioskey() pa mozes da probas sa njom...

poz.
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.verat.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: ctrl + 16.08.2001. u 20:04 - pre 276 meseci
Citat:
kajla je napisao:
Postoji funkcija bioskey() pa mozes da probas sa njom...

poz.


ok, al daj jos malo informacija o njoj
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.infosky.net



+2 Profil

icon Re: ctrl + 16.08.2001. u 20:13 - pre 276 meseci
_________ 
&brvbar;bioskey_ Keyboard interface. _
_________ _
_
Syntax: _
int bioskey(int cmd); _
_
Prototype in: _
bios.h _
_
Remarks: _
bioskey performs various keyboard operations using BIOS interrupt 0x16. _
_
The parameter cmd determines the exact operation. _
_
Return Value: _
The value returned by bioskey depends on the task it performs, determined by _
the value of cmd: _

cmd &brvbar;
Value &brvbar; Description
--------+-------------------------------------------------------------
0 &brvbar; If the lower 8 bits are nonzero, bioskey returns the ASCII
&brvbar; character for the next keystroke waiting in the queue or the
&brvbar; next key pressed at the keyboard.
&brvbar; If the lower 8 bits are zero, the upper 8 bits are the extended
&brvbar; keyboard codes defined in the IBM PC Technical Reference manual.
1 &brvbar; Tests whether a keystroke is available to be read.
&brvbar; A return value of zero means no key is available.
&brvbar; The return value is 0xFFFFF (-1) if Ctrl-Brk has been pressed.
&brvbar; Otherwise, the value of the next keystroke is returned.
&brvbar; The keystroke itself is kept to be returned by the next call to
&brvbar; bioskey that has a cmd value of zero.
2 &brvbar; Requests the current shift key status.

The shift key status is obtained by ORing the following values together:
First &brvbar; Second &brvbar; Shift Key
Value &brvbar; Value &brvbar; Status
---------+--------+---------------------
Bit 7 &brvbar; 0x80 &brvbar; Insert on
Bit 6 &brvbar; 0x40 &brvbar; Caps on
Bit 5 &brvbar; 0x20 &brvbar; Num Lock on
Bit 4 &brvbar; 0x10 &brvbar; Scroll Lock on
Bit 3 &brvbar; 0x08 &brvbar; Alt pressed
Bit 2 &brvbar; 0x04 &brvbar; Ctrl pressed
Bit 1 &brvbar; 0x02 &brvbar; Left Shift pressed
Bit 0 &brvbar; 0x01 &brvbar; Right Shift pressed

Portability:
bioskey works with IBM PCs and compatibles only.

Example:
Code:

 #include <stdio.h>
 #include <bios.h>
 #include <ctype.h>

  #define RIGHT  0x01
  #define LEFT   0x02
  #define CTRL   0x04
  #define ALT    0x08

  int main(void)
  {
     int key, modifiers;

     /* function 1 returns 0 until a key is pressed */
     while (bioskey(1) == 0);

     /* function 0 returns the key that is waiting */
     key = bioskey(0);

     /* use function 2 to determine if shift keys were used */
     modifiers = bioskey(2);
     if (modifiers)
     {
        printf("[");
        if (modifiers & RIGHT) printf("RIGHT");
        if (modifiers & LEFT)  printf("LEFT");
        if (modifiers & CTRL)  printf("CTRL");
        if (modifiers & ALT)   printf("ALT");
        printf("]");
     }
     /* print out the character read */
     if (isalnum(key & 0xFF))
        printf("'%c\n", key);
     else
        printf("%#02x\n", key);
     return 0;
  }


poz.

PS. ako te zanima mogu da postujem jedan primer koji sam ja pisao.
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.infosky.net



+2 Profil

icon Re: ctrl + 16.08.2001. u 20:15 - pre 276 meseci
Malo je necitak predhodni post ali sve to imas u help-u od Turbo C++ 1.00.

poz.
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: ctrl + 16.08.2001. u 20:27 - pre 276 meseci
kajla napomeni coveku, da mu je to samo za DOS.
Pozdrav.

[Ovu poruku je menjao passanger dana 08-16-2001 u 08:27 PM GMT]
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.verat.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: ctrl + 16.08.2001. u 21:45 - pre 276 meseci
Citat:
passanger je napisao:
kajla napomeni coveku, da mu je to samo za DOS.
Pozdrav.

[Ovu poruku je menjao passanger dana 08-16-2001 u 08:27 PM GMT]


Vidis ti al bi me covek zezno :D... treba mi za neki unix prvenstveno, ali nebi smetalo da radi pod dosom :^)
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: ctrl + 16.08.2001. u 22:03 - pre 276 meseci
Citat:
autoexes je napisao:
Citat:
passanger je napisao:
kajla napomeni coveku, da mu je to samo za DOS.
Pozdrav.

[Ovu poruku je menjao passanger dana 08-16-2001 u 08:27 PM GMT]


Vidis ti al bi me covek zezno :D... treba mi za neki unix prvenstveno, ali nebi smetalo da radi pod dosom :^)

Pa to sam ti rekao cisto da se ne bi mlatio, ako bi video da ti ne radi pod nekim drugim OS-om!
Pozdrav.
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.infosky.net



+2 Profil

icon Re: ctrl + 17.08.2001. u 10:52 - pre 275 meseci
Sve je bilo napisano samo je trebalo procitati do kraja:
Code:

Portability: 
bioskey works with IBM PCs and compatibles only. 


poz.
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.verat.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: ctrl + 17.08.2001. u 17:34 - pre 275 meseci
Ea ovaj kako da kazem... nece da ga kompajlira ni turbo c++ 4.5 ni devc++

stim sto mi je ovaj prvi pronasao error:
12: poziv na nedefinisanu funkciju bioskey u funkciji main
a ovaj drugi ne moze da nadje bioskey.h


nisam jos probo pod gcc-om
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: ctrl + 17.08.2001. u 18:01 - pre 275 meseci
Citat:
autoexes je napisao:
Ea ovaj kako da kazem... nece da ga kompajlira ni turbo c++ 4.5 ni devc++

stim sto mi je ovaj prvi pronasao error:
12: poziv na nedefinisanu funkciju bioskey u funkciji main
a ovaj drugi ne moze da nadje bioskey.h


nisam jos probo pod gcc-om


E ovaj ... zasto malo pazljivije ne gledas?
Drugo kljla ti je gore postovao example, pa proveri da li si sve uradio kao sto je postovano (ako se ceo kod uzimao), a ako nije to proveri da li si ukljucio zaglavlje bios.h, jer borlanodovi kompajleri obicno prijavljuju greske gde se na to misli, da nije definisana funkcija, odnosno nije ukljuceno zaglavlje gde je deklarisana funkcija. Znaci pokusaj samo #include <bios.h>, ako je imas (a zasto i nebi) u include direktorijumu. Ako si je ukljucio u program i ona postoji u include diru proveri path u kompajleru, gde bio trebao da trazi.
Pozdrav.
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.verat.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: ctrl + 18.08.2001. u 13:55 - pre 275 meseci
[qoote]
E ovaj ... zasto malo pazljivije ne gledas?
Drugo kljla ti je gore postovao example, pa proveri da li si sve uradio kao sto je postovano (ako se ceo kod uzimao), a ako nije to proveri da li si ukljucio zaglavlje bios.h, jer borlanodovi kompajleri obicno prijavljuju greske gde se na to misli, da nije definisana funkcija, odnosno nije ukljuceno zaglavlje gde je deklarisana funkcija. Znaci pokusaj samo #include <bios.h>, ako je imas (a zasto i nebi) u include direktorijumu. Ako si je ukljucio u program i ona postoji u include diru proveri path u kompajleru, gde bio trebao da trazi.
Pozdrav.
[/quote]

Pa uradio sam copy/paste ovog teksta, znaci nista nisam izostavio. A sto je bedak nemam bioskey.h na kompu, to sam tek posle provalio
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

[es] :: C/C++ programiranje :: ctrl +

[ Pregleda: 3814 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.