我正在 Mac 上创建一个软件,我想更改 IORegistryEntry 的值。我可以在 IORegistryExplorer 上查看它,但无法编辑它。所以我的理解是我必须通过代码来编辑它。这是我的代码:
CFMutableDictionaryRef matchingDict = IOServiceNameMatching("AppleUSBMultitouchDriver");
io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, matchingDict);
if(service) {
CFStringRef manufacturer = IORegistryEntryCreateCFProperty(service, CFSTR("Manufacturer"), kCFAllocatorDefault,0);
NSLog(@"%@", (NSString*)manufacturer);
kern_return_t err = IORegistryEntrySetCFProperty(service, CFSTR("Manufacturer"), CFSTR("test"));
NSLog(@"error = %d", err);
}
这将输出
2010-04-10 16:09:09.015 Test[41548:a0f] Apple Inc.
2010-04-10 16:09:09.015 Test[41548:a0f] error = 0
但在我检查 IORegistryExplorer 中的值后,它仍然没有改变。有人有什么建议吗?
谢谢
为了实现这一点,通常您要更改的特定硬件的驱动程序必须实现 setProperties()(在 IOKit 中)来为您进行此更改。
Apple 不太可能在其 AppleUSBMultitouchDriver 中实现 setProperty() 以允许您更改制造商名称。他们想具体说明它们是什么种类的水果。 ;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)