كيفية إنشاء أحداث لوحة المفاتيح باستخدام بايثون
تقدم بايثون تقنيات مختلفة لمحاكاة أحداث لوحة المفاتيح، مما يتيح لك التفاعل مع إجراءات لوحة المفاتيح لجهاز الكمبيوتر الخاص بك برمجيا .
محاكاة ضغطات المفاتيح
للحصول على نهج مباشر ومتعدد المنصات، خذ بعين الاعتبار باستخدام مكتبةctypes، والتي تسمح لك بالتفاعل مع Windows API:
مثال:
استيراد أنواع ctypes من ctypes استيراد wintypes وقت الاستيراد user32 = ctypes.WinDLL('user32', use_last_error=True) VK_A = 0x41 # رمز المفتاح الظاهري لـ "A" KEYEVENTF_KEYUP = 0x0002 # إشارة الحدث الرئيسي لإصدار المفتاح فئة KEYBDINPUT (ctypes.Structure): _fields_ = (("wVk"، wintypes.WORD)، ("wScan"، wintypes.WORD)، ("dwFlags"، wintypes.DWORD)، ("الوقت"، wintypes.DWORD)، ("dwExtraInfo"، wintypes.ULONG_PTR)) اضغط على مفتاح_المفتاح (key_code): key_input = KEYBDINPUT(wVk=key_code) user32.SendInput(1, ctypes.byref(key_input), ctypes.sizeof(key_input)) Def Release_key(key_code): key_input = KEYBDINPUT(wVk=key_code, dwFlags=KEYEVENTF_KEYUP) user32.SendInput(1, ctypes.byref(key_input), ctypes.sizeof(key_input)) # اضغط على المفتاح "A" وحرره اضغط على المفتاح (VK_A) وقت النوم(1) Release_key(VK_A)import ctypes
from ctypes import wintypes
import time
user32 = ctypes.WinDLL('user32', use_last_error=True)
VK_A = 0x41 # Virtual key code for 'A'
KEYEVENTF_KEYUP = 0x0002 # Key event flag for key release
class KEYBDINPUT(ctypes.Structure):
_fields_ = (("wVk", wintypes.WORD),
("wScan", wintypes.WORD),
("dwFlags", wintypes.DWORD),
("time", wintypes.DWORD),
("dwExtraInfo", wintypes.ULONG_PTR))
def press_key(key_code):
key_input = KEYBDINPUT(wVk=key_code)
user32.SendInput(1, ctypes.byref(key_input), ctypes.sizeof(key_input))
def release_key(key_code):
key_input = KEYBDINPUT(wVk=key_code, dwFlags=KEYEVENTF_KEYUP)
user32.SendInput(1, ctypes.byref(key_input), ctypes.sizeof(key_input))
# Press and release the 'A' key
press_key(VK_A)
time.sleep(1)
release_key(VK_A)
ملاحظات إضافية: لمحاكاة مفاتيح مختلفة، راجع وثائق
رموز المفاتيح الافتراضيةتنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3