gpt4 book ai didi

objective-c - 以编程方式触发 "detect displays."

转载 作者:行者123 更新时间:2023-12-04 03:24:54 27 4
gpt4 key购买 nike

当您在“显示器”系统偏好设置 Pane 中单击“检测显示器”时,我正在尝试触发与系统执行的操作相同的操作。有没有办法以编程方式执行此操作?我的目标是创建一个 LaunchAgent,它在登录时执行此操作以重置显示分辨率,以防用户弄乱它。

最佳答案

由于 CGDisplayIOServicePort 调用在 OS X 10.9 Mavericks 中已被弃用,因此通过适当的匹配调用获取 IOFramebuffer 服务可能会更好,如下所示:

void triggerDetectDisplays()
{
// loop over all IOFramebuffer services
CFMutableDictionaryRef matchingDict = IOServiceMatching("IOFramebuffer");

mach_port_t masterPort;
IOMasterPort(MACH_PORT_NULL, &masterPort);
io_iterator_t serviceIterator;
IOServiceGetMatchingServices(masterPort, matchingDict, &serviceIterator);

io_service_t obj = IOIteratorNext(serviceIterator);
while (obj)
{
kern_return_t kr = IOServiceRequestProbe(obj, 0);
obj = IOIteratorNext(serviceIterator);
}
}

关于objective-c - 以编程方式触发 "detect displays.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com