ملزمة مفاتيح الوسائط على أبل لوحة المفاتيح تحت OSX 10.5 [مغلقة]

StackOverflow https://stackoverflow.com/questions/1053351

  •  20-08-2019
  •  | 
  •  

سؤال

أنا جديدة إلى حد ما إلى OSX التنمية ، لذلك قد يكون من السهل ولكن جوجل لم تكن مفيدة.

أنا أحاول ربط العمل إلى وسائل الإعلام مفاتيح يمكنك العثور على أحدث أبل لوحات المفاتيح (اللعب, وقفة , الخ).يبدو أنه لا يمكن ربط هذه المفاتيح باستخدام العادية هوتكي API ولكن يجب أن يكون من الممكن منذ iTunes بوضوح يدير.هناك بعض صعبة لا يحملون وثائق API الذي يحقق هذا ؟ أي مساعدة سيكون محل تقدير كبير.

هل كانت مفيدة؟

المحلول

وبعد غوغلينغ أكثر اتساعا، وهذا http://www.rogueamoeba.com/ يبدو UTM / 2007/09/29 / لمعالجة هذه القضية. لا يوجد حل سهل ولكن إذا كنت تقوم بتطوير التطبيق الكاكاو الحقيقي يبدو هذا ممكنا على الأقل.

نصائح أخرى

من التحقيقات نظام التشغيل هو محاصرة تلك الأحداث الرئيسية قبل أن تكون متاحة العمليات الأخرى.أنا خلقت CGEventTap مثل:

int main(int argc, char *argv[]) {
CFMachPortRef      eventTap;
CFRunLoopSourceRef runLoopSource;

eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionListenOnly, kCGEventMaskForAllEvents, myCGEventCallback, NULL);

if (!eventTap) {
    NSLog(@"Couldn't create event tap!");
    exit(1);
}

runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);

CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);

CGEventTapEnable(eventTap, true);

CFRunLoopRun();

CFRelease(eventTap);
CFRelease(runLoopSource);

exit(0);

}

ثم الحدث الفعلي الاستدعاء هو هذا:

CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
    if (type == kCGEventKeyUp) {
        CGKeyCode keycode = CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode);
        NSLog(@"%d", keycode);
    }

    return event;
}

ما تراه تسجيل الدخول إلى وحدة التحكم هو أن تحصل على تسجيل الدخول العادي أساليب مفاتيح الوظائف (إذا كنت الضغط باستمرار على المفتاح "الجبهة الوطنية" وكذلك) ، ولكن عند الضغط على مفاتيح الوسائط, سطوع, حجم, أو إخراج مفاتيح ، لا شيء هو الحصول على تسجيل.

لذلك من هذا ، للأسف يبدو أن هناك أي وسيلة لالتقاط مفتاح الوسائط الحدث.ولكن أحب أن أكون مخطئا.

تحرير:نسيت أن أشير إلى أن هذا الأمر أيضا يحتاج إلى الجذر أو تحتاج إلى تشغيل على الوصول إلى الأجهزة المساعدة في "الوصول الشامل" جزء من نظام الأفضليات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top