Konsoldan fare tıklaması tetiklemek

Zaman zaman çeşitli online oyunlara sarıyorum. Sardığım zaman da bir süre sonra sıkılıp bu işi daha kolay nasıl yaparım diye kendime iş çıkarıyorum. Son sardığım oyun php ile yazılmış basit bir rpg oyunu. Arada sırada girip 3-5 şeye tıklayıp sonra kapatıp hayatıma devam ediyorum. Oyunda flash ile yapılmış bir “slots” uygulaması var ve az biraz para ve tecrübe puanı(xp) kazandırıyor. Tabi bunun sıkıntısı jeton sayısı kadar ekrana tıklamak oluyor.

Giriş kısmını geçtikten sonra asıl meseleye gelelim. Linux sistemde mouse’u bir yere sabitledikten sonra oraya otomatik tıklama yapmak istiyordum. Mantık olarak X’e göndereceğim bir komut olmalı ve X de bu olayı benim yerime yapmalı diye düşünsem de başlangıçta C ile yazılmış Xlib.h ve Xutil.h gibi kütüphanelerin kullanıldığı bir yöntem çıktı. Çıktı çıkmasına da sadece basit bir click işlemi için olay kod yazma seviyesine girmemeli diye düşündüğümden biraz daha aramaya inanarak aradığım aracı buldum:

xdotool adında güzel bir konsol uygulaması bulunmakta(geek abiler sağolsun, konsol candır :) ). Bu uygulama benim istediğim şekilde fareyi yönetmekle birlikte(istediğiniz yönde hareket ettirme yeteneği falan da var) bütün klavye aksiyonlarını da yapabiliyor. Detaylı bilgisi için “man xdotool” komutu(rtfm) yeterli oluyor.

Başlıkta yazdığım olayı tamamlayayım. Konsoldan fareyi yönetip tıklama işlemini tetiklemek için:
xdotool click 1
komutu yeterli oluyor. Bu komut fare ile sol tık yapmışssınız gibi davranıyor. 1 yerine parametre olarak 2 verdiğinizde orta tuşu, 3 verdiğinizda sağ tuşu tetikleyebilirsiniz.

Tabi benim durumumda bir kere tıklamak yetmiyordu, tıkladıktan sonra biraz bekleyip aynı yere bir daha tıklamak gerekiyordu. Basit bir bash script döngüsü yetti bu işi halletmeme:
while [ "1" ]; do
sleep 7; #7 saniye beklemek için
echo "click";
xdotool click 1;
done;

Bu da böyle gereksiz bir bilgi oldu işte :)

December 17, 2011 • Tags: , , • Posted in: teknolojik şeyler

One Response to “Konsoldan fare tıklaması tetiklemek”

  1. purak - December 18, 2011

    E kanka bunu daha önce söyleseydin ya ahah :) USIS(bizim okulun ders seçme aleti) zamanlarında çok işime yarayabilirdi.

    Ben de bir şey bulmuştum, xautoclick diye bir program. Adam ufak bir arayüzden tıklama sayısı sayısı alıyordu, sonra sabitlediğin bir yere belirli(sen belirliyorsun) bir saniye aralığında tıklıyordu program. Derlenmemişti de koduna müdahale edip derlemiştim.

    Ama yine ders seçememiştim kodumun usisinden ahah :)

    http://xautoclick.sourceforge.net/news.html

Leave a Reply