Otomatik tıklama nedir?
Otomatik tıklama, bazı kod komut dosyalarının yazıldığı bir programdır ve kodu temel alarak, eğer bir kullanıcı bir tuşa basarsa, fare otomatik olarak tıklanacaktır. Python'da pip komutuyla kurulabilen pynput modülünü kullanarak otomatik tıklama projesi yapabiliriz.
Otomatik tıklama kodunu aşağıdaki adımlara bölebiliriz:
java yorumları
1. Gerekli modüllerin içe aktarılması
Time ve thread modülünü içe aktaracağız ve pynput'un fare alt modülünden Button, Controller modülünü içe aktaracağız. Aynı şekilde pynput'un klavye alt modülünden Listener ve Keycode modüllerini de import edeceğiz.
Örnek:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode
2. Değişkenlerin başlatılması
Bu bölümde programın yürütülmesi için çok yararlı olan dört değişkeni başlatacağız.
Örnek:
buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x')
3. Sınıfın oluşturulması
Bu bölümde fare tıklamasının yürütülüp yürütülmediğini kontrol etmek için thread sınıfını genişleten sınıfı oluşturacağız.
Örnek:
class ClickTheMouse(threading.Thread): def __init__(self, delayTime, buttonDirection): super(ClickTheMouse, self).__init__() self.delayTime = delayTime self.buttonDirection = buttonDirection self.running = False self.program_running = True
4. Bu bölümde, harici thread'leri kullanarak fare tıklamalarını kontrol etmek için bazı yöntemler tanımlayacağız.
Örnek:
def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False
5. Bu bölümde, kodun tamamını iç içe geçmiş iki döngü kullanarak çalıştıracak yöntemi tanımladık. Değişkenler false olarak ayarlandığında bu döngüler sonlandırılacaktır. Aksi halde programa devam edecekler.
Örnek:
def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1)
6. Bu bölümde fare tıklaması için thread oluşturacağız ve daha sonra thread'i başlatacağız.
Örnek:
mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start()
7. Klavye tıklaması fonksiyonunu tanımladığımız son bölümdür. Herhangi bir tuşa basıldığında bu fonksiyonda argüman olarak iletilir ve farklı durumları kontrol eder.
java dize sınıfı
StartStop tuşu ise program başlatılacak veya durdurulacaktır. Sonlandırma anahtarı ise program sonlandırılacaktır.
Örnek:
def on_press(key): if key == startStopButton: if clickThread.running: clickThread.stopMouseclick() else: clickThread.startMouseclick() elif key == terminateButton: clickThread.exitScript() listener.stop() with Listener(on_press=on_press) as listener: listener.join()
Tam Örnek:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode delayTime = 0.001 buttonDirection = Button.right startStopButton = KeyCode(char='s') terminateButton = KeyCode(char='x') class ClickTheMouse(threading.Thread): def __init__(self, delayTime, buttonDirection): super(ClickTheMouse, self).__init__() self.delayTime = delayTime self.buttonDirection = buttonDirection self.running = False self.program_running = True def startMouseclick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1) mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start() def on_press(key): if key == startStopButton: if clickThread.running: clickThread.stopMouseClick() else: clickThread.startMouseclick() elif key == terminateButton: clickThread.exitScript() listener.stop() with Listener(on_press=on_press) as listener: listener.join()
Açıklama:
Yukarıdaki kodda start ve stop tuşlarını 's', sonlandırma anahtarını ise 'x' olarak başlattık. Python betiğini çalıştırdığımızda ve 's' girersek, otomatik olarak faremizi ekranda hareket ettirdiğimizde 0,001 saniye veya bir milisaniyelik bir gecikmeyle sağ tıklanacaktır.
Bölüm 2'de fare tıklamasının işlevselliğini değiştirebiliriz; burada farenin tıklama yönünü değiştirmek için Button.left veya Button.center özelliğini kullanabiliriz.
Fare tıklamasını kolayca görmek istiyorsak, gerçek tıklamayı görmek için gecikme süresini daha yükseğe değiştirebiliriz. Bu kodda fare imlecini ekranda hareket ettirmediğimizde tıklanmayacaktır. Yalnızca imleci ekranda hareket ettirdiğimizde çalışacaktır.