وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

راهنمای ماژول صفحه کلید پایتون

0 284
زمان لازم برای مطالعه: 5 دقیقه


معرفی

پایتون یکی از مناسب ترین زبان ها برای خودکارسازی وظایف است. این که آیا این خراش دادن وب قابل تکرار (اخلاقی) پس از مدتی، شروع برخی از برنامه ها است روی راه اندازی کامپیوتر یا ارسال خودکار ایمیل های معمولی، پایتون دارد زیاد ماژول هایی که زندگی شما را آسان تر می کند.

یکی از اینها ماژولی است به نام keyboard، و کنترل کامل صفحه کلید شما را در اختیار می گیرد. با این ماژول می‌توانید هر چیزی را تایپ کنید، کلیدهای داغ ایجاد کنید، اختصارات ایجاد کنید، صفحه کلید را مسدود کنید، منتظر ورودی باشید و غیره.

در این راهنما، روش تنظیم و استفاده از آن را بررسی خواهیم کرد keyboard ماژول در پایتون

توجه داشته باشید: برنامه‌هایی که با خودکارسازی فرآیندهای انسان‌مانند کار می‌کنند باید به‌طور اخلاقی و مسئولانه توسعه یابند. را keyboard ماژول بسیار قابل مشاهده ساخته شده است، و بنابراین اگر کسی از آن برای ایجاد key-logger یا ربات های مخرب استفاده کند، آن را ناامید و شفاف می کند.

نصب کردن صفحه کلید مدول

توجه داشته باشید: نسخه استفاده شده از پایتون در این راهنما 3.8 است. با این حال keyboard ماژول می تواند با Python 2.x و Python 3.x کار کند.

اگر از لینوکس استفاده می کنید، برای استفاده از این کتابخانه، باید آن را به عنوان نصب کنید root. اگر این کار را نکنید، یک دریافت خواهید کرد:

ImportError: You must be root to use this library روی linux.

همچنین، هنگام اجرای اسکریپت خود، باید آن را با آن اجرا کنید root امتیازات:

$ sudo pip3 install keyboard
$ sudo python3 my_script.py

در ویندوز و MacOS، از آنجایی که امتیازات بسیار متفاوت عمل می کنند – می توانید آن را به سادگی از طریق نصب کنید pip و اسکریپت ها را اجرا کنید:

$ pip install keyboard
$ python my_script.py

توجه داشته باشید: برای MacOS، ممکن است مجبور باشید به ترمینال یا سایر برنامه‌ها اجازه دهید وضعیت دستگاه شما را تغییر دهند، مثلاً با تایپ کردن. همچنین به خاطر داشته باشید که از سپتامبر 2021، کتابخانه هنوز آزمایشی است روی سیستم عامل مک.

را صفحه کلید توابع ماژول

توابع زیادی در این ماژول وجود دارد که می توان از آنها برای شبیه سازی عملکردهای صفحه کلید استفاده کرد.

  • keyboard.write(message, (delay))پیام می نویسد، با یا بدون تاخیر.
  • keyboard.wait(key)برنامه را مسدود می کند تا key فشرده می شود. را key به عنوان یک رشته ارسال می شود (“فضا”، “esc” و غیره)
  • keyboard.press(key)فشار می دهد یک کلید و دارای تا release(key) تابع نامیده می شود.
  • keyboard.release(key)منتشر شده یک کلید.
  • keyboard.send(key)مطبوعات و منتشر می کند یک کلید.
  • keyboard.add_hotkey(hotkey, function) – ایجاد یک hotkey که با فشردن آن a را اجرا می کند function.
  • keyboard.record(key) – فعالیت صفحه کلید را تا زمانی که key فشرده می شود.
  • keyboard.play(recorded_events, (speed_factor)) – رویدادهای ضبط شده با را تکرار می کند keyboard.record(key) تابع، با اختیاری speed_factor.

ما همه اینها را مرور خواهیم کرد، اما در اینجا یک مثال سریع آورده شده است:

>>> import keyboard
>>> keyboard.write("Hello")
>>> Hello

را Hello پیام ظاهر می شود روی صفحه نمایش، در terminal، مثل اینکه شما آن را نوشته اید. شما می توانید یک دستور را به راحتی خودکار کنید و یک نام مستعار کلید میانبر برای آن ایجاد کنید. در اینجا یک مثال (خام) از خروج از Python REPL، نوشتن a است curl دستور و اجرای آن:

>>> import keyboard
>>> keyboard.write("exit()"); keyboard.send("enter"); keyboard.write("curl https://www.google.com"); keyboard.send("enter");
>>> exit()
curl https://www.google.com
$ curl https://www.google.com
<!doctype html><html itemscope=""...

صفحه کلید‘s نوشتن() و صبر کن() کارکرد

را write() فرمان، همانطور که قبلا دیده‌ایم، پیامی را با تاخیر اختیاری در شروع می‌نویسد. اگر تأخیر تنظیم نشود، نوشتن آنی است. بسیار زیبا با آن ترکیب شده است wait() عملکردی که منتظر فشار دادن یک کلید خاص است.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از Git و GitHub - راهنمای مبتدیان و توسعه دهندگان با تجربه

به عنوان مثال، می‌توانیم یک ماکرو تغییر شکل ایجاد کنیم که مثلاً به آن گره خورده است 1، که به آن ورودی با یک پیام جدید پاسخ می دهد. توجه داشته باشید که یک راه واقعی برای ایجاد کلیدهای میانبر به جای این وجود دارد که بعداً به آن خواهیم پرداخت.

ما بی نهایت ایجاد خواهیم کرد True برای بررسی کلید فشار داده شده حلقه بزنید و می توانید اسکریپت را در پس زمینه اجرا کنید:

import keyboard

while True:
    keyboard.wait("1")
    keyboard.write("\n The key '1' was pressed!")

توجه داشته باشید: کاراکترهای ویژه توسط این تابع پشتیبانی نمی شوند، بنابراین اگر اضافه کنید، بگویید: ! – با یک ضربه خواهید خورد StopIteration استثنا.

صفحه کلید مطبوعات()، رهایی() کارکرد

از آنجایی که شبیه سازی آن سخت است press() و release() به طوری که اقدامات قابل مشاهده باشد، ما نیز خواهیم دید record() و play() در عمل

را press() تابع کلیدی را فشار می دهد و هنگام تماس آن را رها می کند release() روی همان کلید توجه داشته باشید که نمی توانید sleep() برای مدتی شبیه سازی نگه داشتن یک کلید:

>>> import keyboard
>>> from time import sleep
>>> keyboard.press("a")
>>> sleep(1)
>>> keyboard.release("a")
>>> a

با این حال، می توانید برخی از کلیدهای خاص مانند (SHIFT) یا (CTRL) را به این ترتیب نگه دارید:

>>> keyboard.press("shift")
>>> keyboard.write("lowercase")
>>> keyboard.release("shift")

>>> LOWERCASE

صفحه کلید رکورد() و بازی() کارکرد

همیشه در مورد وارد کردن کلیدهای جدید نیست – گاهی اوقات، شما می خواهید آنچه را که در حال انجام است ضبط کنید روی و آن را پخش کنید. به خاطر داشته باشید که برای ضبط هرگونه ورودی مانند این به امتیازات مدیر نیاز دارید، زیرا این فناوری به راحتی می تواند برای ایجاد کی لاگر استفاده شود.

پیشنهاد می‌کنیم بخوانید:  ماژول های پایتون: ایجاد، وارد کردن و اشتراک گذاری

را record() تابع یک کلید ماشه را می پذیرد، تا زمان که آن را ضبط می کند و دنباله ای از رویدادها را برمی گرداند KeyboardEvent. سپس می‌توانید این توالی از رویدادها را در آن قرار دهید play() تابع، که صادقانه آنها را با یک اختیاری بازپخش می کند speed_factor آرگومان که به عنوان یک ضرب کننده برای سرعت رویدادهای اصلی عمل می کند:

import keyboard
recorded_events = keyboard.record("esc")
keyboard.play(recorded_events)

اگر بخواهیم print را recorded_events، آنها چیزی شبیه به:

KeyboardEvent(w up), KeyboardEvent(o down), ...)

اثرات این روش ها به بهترین شکل به صورت GIF یا بازسازی می شوند روی ماشین شما به عنوان مثال، دنباله ای از نوشتن یک پیام، حذف آن و نوشتن پیام دیگری به جای آن:

راهنمای ماژول صفحه کلید پایتون

صفحه کلید ارسال() تابع

را send() تابع را در بر می گیرد press() و release() با هم، و برای کلیدهای تک، بر خلاف write() که برای کل جملات استفاده می شود:

import keyboard

recorded_events = keyboard.record("s")

keyboard.send("w")
keyboard.send("a")

keyboard.play(recorded_events)

یک بار s فشرده شده است، w و a کلیدها دوباره پخش می شوند

را press() عملکرد همچنین می تواند ترکیبی از کلیدهای فشرده را بپذیرد. می توانید ترکیبی از "ctrl+shift+s" برای مثال، اگر در برنامه‌ای هستید که از آن عملیات پشتیبانی می‌کند، دیالوگ ذخیره یک فایل باید ظاهر شود:

import keyboard

while True:
    keyboard.wait("s")
    keyboard.press("ctrl+shift+s")
    
    keyboard.press("command+shift+s)

اگرچه، این راه درستی برای افزودن کلیدهای میانبر نیست. بلکه می توانید از add_hotkey() تابع.

صفحه کلید add_abbreviation() تابع

را add_abbreviation() عملکرد بسیار خوبی است، زیرا به شما امکان می دهد اختصارات را برای ورودی های طولانی تعریف کنید و نسخه های مخفف شده را با نسخه های کامل ذخیره شده جایگزین کنید.

به‌عنوان مثال، مشابه روشی که سرویس‌هایی مانند Google ایمیل شما را برای اکثر فرم‌های ورودی ذخیره می‌کنند، می‌توانید مخفف خود را ایجاد کرده و آن را از طریق راه‌اندازی کنید. (SPACE):

>>> import keyboard
>>> keyboard.add_abbreviation("@", "(email protected)")

در حین اجرا، اگر تایپ کنید @ به دنبال آن a (SPACE) – ورودی فرم بلند جایگزین تایپ شده خواهد شد @.

صفحه کلید add_hotkey() تابع

را add_hotkey() تابع یک کلید میانبر را که می‌خواهید ذخیره کنید یا ترکیبی از کلیدها و یک تابع را می‌پذیرد. انتقال توابع لامبدا ناشناس در اینجا آسان است، اگرچه می توانید توابع نامگذاری شده را نیز اضافه کنید.

به عنوان مثال، بیایید یک کلید میانبر برای اضافه کنیم CTRL+j، که یک تابع لامبدا را راه اندازی می کند که این را ثبت می کند:

import keyboard

keyboard.add_hotkey("ctrl+alt+j", lambda: print("ctrl+alt+j was pressed"))

کلید میانبر، ctrl+alt+p، ذخیره می شود و وقتی این ترکیب را فشار می دهید باید خروجی لامبدا را ببینید.

نتیجه

را keyboard ماژول یک کتابخانه سبک و ساده است که برای شبیه سازی ضربه زدن به کلید و اتوماسیون ساده در پایتون استفاده می شود. این ویژگی چندان غنی نیست، اما می تواند برای خودکار کردن برخی از کارهایی که ممکن است در کارهای روزمره خود انجام می دهید یا صرفاً برای کمی سرگرمی استفاده شود.

یک ماژول بالغ تر و قدرتمندتر که می تواند به عنوان جایگزین استفاده شود pynput.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-08 15:04:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید