C programlama - Yön tuşlarını okutabilme ?

Başlatan blackwidow, 08 Mart 2015 - 06:05:03

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

blackwidow

Merhaba arkadaşlar

C programlamada yön tuşlarını konsoldan nasıl okutabilirim ?

bunun bir yolu var mı

mhmtkrktr

soruyu doğru anlamışsam;
xev
komutunu verip klavye yön tuşlarına basmanız yeterli. Fakat bunun için Ubuntu 'da önceden bir paket kurmak gerekir mi? onu bilmiyorum.

ekremsenturk

ASCII depğerlerini okutabilirisn. (Ancak, sağ, sol, aşağı, yukarı ayrımını nasıl yapabileceğini kendin araştırmalısın. Dördünün de değeri 27 görünüyor)

blackwidow

yanıtlar için teşekkürler

ben araştırdım ve c de kodunu yazdım hepsi 27 döndürdü bunun içinde handler fonksiyonlar var onları yazmaya uğraşıyorum 0x07 gibi değerleri var bu tuşların
onu entegre edebilirsem iyi olacak

Reverser

şuraya bir bakın [1]

[1] http://stackoverflow.com/questions/21408837/how-to-read-arrow-keys-cheat-code-in-c-programming-when-inputted-from-the-key

şöyle bir örnek verilmiş linux için


int main() {
        dis = XOpenDisplay(NULL);
        win = XCreateSimpleWindow(dis, RootWindow(dis, 0), 1, 1, 500, 500, 0, BlackPixel (dis, 0), BlackPixel(dis, 0));
        XMapWindow(dis, win);
        colormap = DefaultColormap(dis, 0);
        green_gc = XCreateGC(dis, win, 0, 0);
        XParseColor(dis, colormap, green, &green_col);
        XAllocColor(dis, colormap, &green_col);
        XSetForeground(dis, green_gc, green_col.pixel);

        XSelectInput(dis, win, ExposureMask | KeyPressMask | ButtonPressMask);

        XDrawRectangle(dis, win, green_gc, 1, 1, 497, 497);
        XDrawRectangle(dis, win, green_gc, 50, 50, 398, 398);
        XFlush(dis);

        while (1)  {
        XNextEvent(dis, &report);
        switch  (report.type) {
            case Expose:
                fprintf(stdout, "I have been exposed.\n");
                                XDrawRectangle(dis, win, green_gc, 1, 1, 497, 497);
                                XDrawRectangle(dis, win, green_gc, 50, 50, 398, 398);
                                XFlush(dis);
                        break;
            case KeyPress:
            /*Close the program if q is pressed.*/
                    if (XLookupKeysym(&report.xkey, 0) == XK_q) {
                        exit(0);
                    }
                    break;
                }
        }

        return 0;
}


           /*Close the program if q is pressed.*/
                    if (XLookupKeysym(&report.xkey, 0) == XK_q) {


header incelenmeli muhtemelen yön tuşlarıda dahil edilmiştir.

XFCE ROCKS !
Powered by Thunar & XFWM4



if

@blackwidow, yazdığınız kodu burada da paylaşın ki başkaları da faydalansın.