-
چهارشنبه, ۵ شهریور ۱۳۹۹، ۱۱:۱۵ ق.ظ
-
۸۲۳
ضد سخت افزار - قسمت ۳ : این بار ، سندروم کیبورد بی قرار در پایتون
درود به همه !
با قسمت سوم از سری دنباله دار ضد سخت افزار در خدمت شما هستیم . در این سری آموزشی قصد داریم اسکریپت هایی بنویسیم که سخت افزار های مختلف رو هدف قرار بدند . امروز کیبورد رو هدف قرار میدیم . در قسمت قبلی ضد سخت افزار اومدیم سندروم cdrom بی قرار رو نوشتیم . میدونم که میدونید سندروم کیبورد بی قرار هم وجود داره :) . در این پست اسکریپتی بسیار ساده مینویسیم که وقتی اونو اجرا میکنیم باعث میشه کلا کیبورد کاربر (کیبورد مجازی یا کیبورد فیزیکیش) بی استفاده بشه .
خب اما چطوری قراره اینکارو بکنیم ؟ خیلی سادس . ما کاری میکنیم که اسکریپت شنود کنه ببینه کاربر هر کلیدی که فشار داد سریع همون موقع یه backspace بزنه تا اون کاراکتری که نوشته پاک بشه . بعد از اینکه پاک شد هم میتونیم خودمون براش یه متن بنویسیم :). حالا سورس رو مینویسیم متوجه میشید .
برای نوشتن سورس امروز از کتابخونه ی keyboard استفاده میکنیم . با ابزار pip میتونیم این کتابخونه رو نصب کنیم :
نصب keyboard در لینوکس :
MrPython@debian:~$ sudo pip3 install keyboard
نصب keyboard در ویندوز :
C:\> pip install keyboard
بریم سراغ سورس کد .
سورس کد :
import keyboard as k
def onpress(key):
k.press_and_release("backspace") # Press Back Space To Delete Wrote Character
k.write("HAHAHA :) ") # Write HAHAHA :)
k.on_press(onpress) # if Pressed Any key , call onpress() function
while True:
pass
توضیح سورس کد :
سورس بسیار ساده و بسیار کاربردیه . در خط اول که کتابخونه ی keyboard رو ایمپورت کردیم . سپس یه تابع به نام onpress تعریف کردیم که هر وقت هر کلیدی روی کیبورد فشرده میشه این تابع خودکار فراخونی میشه . اما ببینیم داخل تابع چی گفتیم . در اولین خط از کد های داخل تابع onpress گفتیم که توسط تابع press_and_release کلید backspace زده بشه (این کار باعث میشه اگه کاراکتری نوشته شده پاک بشه) . سپس در خط بعد با استفاده از تابع write اومدیم یه متن با کیبورد نوشتیم . این دوخط کد داخل تابع باعث میشه بعد از اینکه کاربر هر کلیدی میزنه ، اول کاراکتری که نوشته شده پاک بشه و سپس یه متن به جاش نوشته بشه .
بعد از اتمام تابع ، اومدیم شنودگرمون رو با استفاده از تابع on_press ایجاد کردیم . این تابع یه ورودی میگیره و ما اسم تابع onpress که بالا تعریف کردیم رو بهش میدیم . این میاد شنود میکنه و هر کلیدی که زده میشه میره تابع onpress رو فراخونی میکنه .
نهایتا در آخر برنامه یه حلقه ی بینهایت خالی نوشتیم تا برنامه بسته نشه .
میریم برای تست سورسمون . نکته ای که هست اینه که این سورس با ویندوز بیشتر جوره . رو لینوکس احتمال کرش کردنش بیشتره .
خب من روی یه ویندوز ۷ اجراش کردم . سپس شروع کردم کلید های کیبورد رو فشار بدم و یه سری متن بنویسم . در تصویر زیر ببینید چه اتفاقی افتاد :
در واقع هر کلیدی که فشار میدیم تبدیل میشه به یه HAHAHAH :) و تا وقتی که اسکریپت در حال اجراس هیچی به هیچی !
یا حق !
Telegram Channel : @mrpythonblog