मैं एक कुंजीपटल हुक स्थापित किया है:उपयोगकर्ता द्वारा टैप किए गए कीबोर्ड ईवेंट और जेनरेट किए गए एक के बीच अंतर कैसे बताना है?
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
असल में मैं उपयोगकर्ता के कीबोर्ड नल ले, इनपुट खाते हैं, और अपने खुद के इनपुट पोस्ट के बजाय करना चाहते हैं।
तो यदि वह "जी" टैप करता है तो मैं टेक्स्टफील्ड में "foo" पोस्ट करना चाहता हूं। http://www.mail-archive.com/[email protected]/msg23343.html
समस्या यह है कि मेरी प्रोग्राम के रूप में दर्ज की गई पात्रों में से प्रत्येक कुंजीपटल हुक मार जाता है:
मैं यहां पाया के रूप में पाठ फ़ील्ड के लिए लिख रहा हूँ CGEventPost
और CGEventSetUnicodeString
साथ। इसलिए मैं उपयोगकर्ता इनपुट को अवरुद्ध करने के लिए कीबोर्ड हुक में return NULL
नहीं कर सकता ... जो सभी प्रोग्राम के इनपुट को भी अवरुद्ध करता है! ऑब्जेक्टिव-सी में कुछ इसी तरह के लिए खोज रहे How do I use low-level 8 bit flags as conditionals?
:
मैं उन्हें 'इंजेक्शन' ध्वज के साथ सी # में Windows पक्ष पर विभेदित, मेरे सवाल का एक साल पहले यहां देखें।
हम्म, जैसा कि दिखाया गया है MouseEventPressure के 'त्वरित और गंदे' संपादन मुझे निम्नलिखित प्रदान कर रहा है: kCGErrorIllegalArgument: CGEventSetIntegerValueField: अमान्य घटना –
cksubs
@cksubs: क्या आपने ईवेंट स्रोत के लिए उपयोगकर्ता डेटा फ़ील्ड का उपयोग करके वास्तविक तरीके का प्रयास किया था? –
मैं उस रात को एक और नजर रखूंगा। मैं उस समय अटक गया जब मैंने मूल रूप से सवाल पूछा लेकिन इस समय क्यों याद नहीं किया जा सकता। क्या आपके पास उस त्रुटि पर कोई विचार है? http://stackoverflow.com/questions/7102883/using-cgeventsetintegervaluefield-to-edit-a-keyboard-event-gives-error – cksubs