از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
راهنمای ماژول صفحه کلید پایتون
سرفصلهای مطلب
معرفی
پایتون یکی از مناسب ترین زبان ها برای خودکارسازی وظایف است. این که آیا این خراش دادن وب قابل تکرار (اخلاقی) پس از مدتی، شروع برخی از برنامه ها است روی راه اندازی کامپیوتر یا ارسال خودکار ایمیل های معمولی، پایتون دارد زیاد ماژول هایی که زندگی شما را آسان تر می کند.
یکی از اینها ماژولی است به نام 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()
عملکردی که منتظر فشار دادن یک کلید خاص است.
به عنوان مثال، میتوانیم یک ماکرو تغییر شکل ایجاد کنیم که مثلاً به آن گره خورده است 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