"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं पायथन में कीबोर्ड ईवेंट को प्रोग्रामेटिक रूप से कैसे अनुकरण कर सकता हूं?

मैं पायथन में कीबोर्ड ईवेंट को प्रोग्रामेटिक रूप से कैसे अनुकरण कर सकता हूं?

2024-11-08 को प्रकाशित
ब्राउज़ करें:148

How Can I Programmatically Simulate Keyboard Events in Python?

पायथन का उपयोग करके कीबोर्ड ईवेंट कैसे उत्पन्न करें

पायथन कीबोर्ड ईवेंट अनुकरण करने के लिए विभिन्न तकनीकों की पेशकश करता है, जो आपको अपने कंप्यूटर की कीबोर्ड क्रियाओं के साथ प्रोग्रामेटिक रूप से इंटरैक्ट करने में सक्षम बनाता है। .

कीस्ट्रोक्स का अनुकरण

के लिए एक प्रत्यक्ष और क्रॉस-प्लेटफ़ॉर्म दृष्टिकोण, ctypes लाइब्रेरी का उपयोग करने पर विचार करें, जो आपको विंडोज एपीआई के साथ इंटरैक्ट करने की अनुमति देता है:

  1. आवश्यक लाइब्रेरी आयात करें: आयात करें ctypes, wintypes, और time.
  2. User32 DLL लोड करें: Windows API User32 DLL तक पहुंचें और इनपुट प्रकारों और प्रमुख घटनाओं के लिए स्थिरांक परिभाषित करें।
  3. इनपुट संरचनाओं को परिभाषित करें: माउस, कीबोर्ड और हार्डवेयर इनपुट के लिए संरचनाओं को परिभाषित करें।
  4. इनपुट लिखें ऑब्जेक्ट: वांछित कीबोर्ड प्रेस या रिलीज का प्रतिनिधित्व करने के लिए एक INPUT ऑब्जेक्ट बनाएं।
  5. इनपुट भेजें: का उपयोग करें user32.SendInput कुंजी का अनुकरण करते हुए इनपुट ऑब्जेक्ट को कंप्यूटर पर संचारित करें घटना।

उदाहरण:

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