zoukankan      html  css  js  c++  java
  • IOS修改系统音量

    #import <IOKit/IOKitLib.h>
    #import <IOKit/hidsystem/IOHIDLib.h>
    #import <IOKit/hidsystem/ev_keymap.h>
     
    static io_connect_t get_event_driver(void)
    {
        static  mach_port_t        sEventDrvrRef = 0;
        mach_port_t                masterPort, service, iter;
        kern_return_t            kr;
         
        if (!sEventDrvrRef) {
            // Get master device port
            kr = IOMasterPort( bootstrap_port, &masterPort );
            check( KERN_SUCCESS == kr);
             
            kr = IOServiceGetMatchingServices( masterPort, IOServiceMatching(kIOHIDSystemClass), &iter );
            check( KERN_SUCCESS == kr);
             
            service = IOIteratorNext( iter );
            check( service );
             
            kr = IOServiceOpen( service, mach_task_self(), kIOHIDParamConnectType, &sEventDrvrRef );
            check( KERN_SUCCESS == kr );
             
            IOObjectRelease( service );
            IOObjectRelease( iter );
        }
         
        return sEventDrvrRef;
    }
    static void HIDPostAuxKeyWithState(UInt8 auxKeyCode, UInt8 keyState)
    {
        NXEventData event;
        kern_return_t kr;
        IOGPoint loc = { 0, 0 };
             
        bzero(&event, sizeof(NXEventData));
        event.compound.subType = NX_SUBTYPE_AUX_CONTROL_BUTTONS;
         
        if (OSLittleEndian == OSHostByteOrder()) {
            UInt32 evtInfo = auxKeyCode << 16 | keyState << 8;
            event.compound.misc.L[0] = evtInfo;
        }else {
            event.compound.misc.S[0] = auxKeyCode;
            event.compound.misc.C[2] = keyState;
        }
         
        kr = IOHIDPostEvent( get_event_driver(), NX_SYSDEFINED, loc, &event, kNXEventDataVersion, 0, FALSE );
        check( KERN_SUCCESS == kr );
    }
    static void HIDPostAuxKey(UInt8 auxKeyCode)
    {
        HIDPostAuxKeyWithState(auxKeyCode, NX_KEYDOWN);
        HIDPostAuxKeyWithState(auxKeyCode, NX_KEYUP);
    }
    使用方法:
    HIDPostAuxKey(NX_KEYTYPE_SOUND_UP);

  • 相关阅读:
    [转]IDEA 新建 JSP 项目时
    [转] AForge.NET 图像处理类
    [转] 端口被占用的处理
    [极客大挑战 2019]PHP
    今天鸽了
    [ZJCTF 2019]NiZhuanSiWei
    [极客大挑战 2019]Secret File
    [SUCTF 2019]Pythonginx
    [CISCN2019 华北赛区 Day1 Web2]ikun
    [极客大挑战 2019]EasySQL
  • 原文地址:https://www.cnblogs.com/lingzhao/p/3673661.html
Copyright © 2011-2022 走看看