0

デバイスのボタン、数などに関する情報が必要です。

iokit を試してみましたが、奇妙なリストが表示されました

name = IOUSBRootHubDevice 
name = IOUSBHubDevice 
name = IOUSBDevice 
name = IOUSBHubDevice 
name = IOUSBDevice 
name = IOUSBRootHubDevice 
name = IOUSBHubDevice 
name = IOUSBDevice 
name = IOUSBDevice 
name = IOUSBDevice 

私のコード

CFMutableDictionaryRef matchingDict;
                    io_iterator_t iter;
                    kern_return_t kr;
                    io_service_t device;
                    io_name_t name;
                    //io_object_t device;

                    /* set up a matching dictionary for the class */
                    matchingDict = IOServiceMatching(kIOUSBDeviceClassName);
                    if (matchingDict == NULL){
                        return -1; // fail
                    }
                    /* Now we have a dictionary, get an iterator.*/
                    kr = IOServiceGetMatchingServices(kIOMasterPortDefault, matchingDict, &iter);
                    if (kr != KERN_SUCCESS){
                        return -1;
                    }

                    /* iterate */
                    while ((device = IOIteratorNext(iter))){

                        IOObjectGetClass(device, name);

                        printf("name = %s \n", name);
                        /* do something with device, eg. check properties */
                        /* ... */
                        /* And free the reference taken before continuing to the next item */
                        IOObjectRelease(device);
                    }

                    /* Done, release the iterator */
                    IOObjectRelease(iter);

おそらくもっと良いオプションがありますが、Googleで見つけることができません

4

1 に答える 1