Skip to content

Latest commit

 

History

History
119 lines (89 loc) · 3.1 KB

input-yonetimi.md

File metadata and controls

119 lines (89 loc) · 3.1 KB
description
Python ile klavye ve mouse yönetimi (keyboard and mouse hooks), kısayol oluşturma, tuş basımı ve mouse tıklamaları

⌨️ Input Yönetimi | pynput

👀 Hızlı Bakış

  • 🤖 Bilgisayarı işlemlerini otomatikleştirmeyi sağlar
  • ✴️ Windows için pynput paketi kullanılır

⌨️ Klavye Yönetimi

  • 👂 Dinleme işlemleri için Listener objesi kullanılır
  • 👨‍💼 Yönetme işlemleri için Controller objesi kullanılır
from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

# ...or, in a non-blocking fashion:
listener = keyboard.Listener(
    on_press=on_press,
    on_release=on_release)
listener.start()

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için Keyboard ~ pynput alanına bakabilirsin. {% endhint %}

💞 Hotkey Tanımlama

  • ➕ Listener objesine hotkey'i tetikleyen metot eklenmesi gerekir
  • 👮‍♂️ Hotkey'in tetiklenmesi key için canonical metodu ile kullanılmalıdır
  • ❌ Eğer canonical olarak kullanılmazsa tuş kombinasyonlarını algılamaz
from pynput import keyboard

def on_activate():
    print('Global hotkey activated!')

def for_canonical(f):
    return lambda k: f(l.canonical(k))

hotkey = keyboard.HotKey(
    keyboard.HotKey.parse('<ctrl>+<alt>+h'),
    on_activate)
with keyboard.Listener(
        on_press=for_canonical(hotkey.press),
        on_release=for_canonical(hotkey.release)) as l:
    l.join()

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için Keyboard ~ pynput alanına bakabilirsin. {% endhint %}

🖱 Mouse Yönetimi

  • 👂 Dinleme işlemleri için Listener objesi kullanılır
  • 👨‍💼 Yönetme işlemleri için Controller objesi kullanılır
from pynput.mouse import Button, Controller

mouse = Controller()

# Read pointer position
print('The current pointer position is {0}'.format(
    mouse.position))

# Set pointer position
mouse.position = (10, 20)
print('Now we have moved it to {0}'.format(
    mouse.position))

# Move pointer relative to current position
mouse.move(5, -5)

# Press and release
mouse.press(Button.left)
mouse.release(Button.left)

# Double click; this is different from pressing and releasing
# twice on Mac OSX
mouse.click(Button.left, 2)

# Scroll two steps down
mouse.scroll(0, 2)

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için Mouse ~ pynput alanına bakabilirsin. {% endhint %}

🔗 Faydalı Bağlantılar