C Toolbox Mouse Keyboard Hook Ekleme

C Araç Kutusu: Fare İşlemleri

Giriş

Fare, kullanıcıların grafiksel kullanıcı arayüzleriyle (GUI’ler) etkileşime girmelerine olanak tanıyan önemli bir giriş cihazıdır. C programlama dili, fare olaylarını yakalamak ve işlemek için çeşitli işlevler sağlar. Bu araç kutusu, C’de fare işlemlerini gerçekleştirmek için gerekli bilgileri ve kaynakları içerir.

Fare Olayları

Fare, aşağıdakiler de dahil olmak üzere çeşitli olaylar tetikleyebilir:

  • Fare tıklaması: Fare düğmelerinden biri tıklandığında oluşur.
  • Fare hareketi: Fare hareket ettirildiğinde oluşur.
  • Fare tekerleği kaydırma: Fare tekerleği kaydırıldığında oluşur.

Fare Olaylarını Yakalama

C’de fare olaylarını yakalamak için X11 veya ncurses gibi bir pencereleme sistemi kullanmanız gerekir. Bu sistemler, fare olaylarını yakalayan ve bunları işletim sistemine ileten olay döngüleri sağlar.

X11 ile Fare Olaylarını Yakalama

X11 ile fare olaylarını yakalamak için aşağıdaki adımları izleyin:

  1. Xlib başlık dosyasını ekleyin:
    “`c

include

“`

  1. Bir X penceresi oluşturun ve bağlayın:
    c
    Display *display = XOpenDisplay(NULL);
    Window window = XCreateSimpleWindow(display, root, 0, 0, 640, 480, 1, BlackPixel(display, DefaultScreen(display)), WhitePixel(display, DefaultScreen(display)));

  2. Fare olaylarını yakalamak için bir olay döngüsü oluşturun:
    “`c
    while (1) {
    XEvent event;
    XNextEvent(display, &event);

if (event.type == ButtonPress) {
// Fare düğmesi tıklandığında bu kod çalıştırılır.
} else if (event.type == MotionNotify) {
// Fare hareket ettirildiğinde bu kod çalıştırılır.
} else if (event.type == Scroll) {
// Fare tekerleği kaydırıldığında bu kod çalıştırılır.
}
}
“`

ncurses ile Fare Olaylarını Yakalama

ncurses ile fare olaylarını yakalamak için aşağıdaki adımları izleyin:

  1. ncurses başlık dosyasını ekleyin:
    “`c

include

“`

  1. ncurses’i başlatın:
    c
    initscr();

  2. Fare olaylarını etkinleştirin:
    c
    mousemask(ALL_MOUSE_EVENTS, NULL);

  3. Fare olaylarını yakalamak için bir olay döngüsü oluşturun:
    “`c
    while (1) {
    MEVENT event;
    int n = getmouse(&event);

if (n == BUTTON1_PRESSED) {
// Fare düğmesi tıklandığında bu kod çalıştırılır.
} else if (n == MOTION) {
// Fare hareket ettirildiğinde bu kod çalıştırılır.
} else if (n == WHEEL_EVENT) {
// Fare tekerleği kaydırıldığında bu kod çalıştırılır.
}
}
“`

İlgili Kaynaklar


Yayımlandı

kategorisi