如何在macOS中监听电源按钮事件



我有MacBook Air Retina(TouchID(,我需要听电源按钮的按下。我是怎么做到的?

我尝试过这个解决方案在OS X中监听电源按钮事件,但没有起作用:

#include <iostream>
#include <CoreFoundation/CoreFoundation.h>
void
myCallBack(CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo) {
std::cout << "Power Button Pressed" << std::endl;
}
int
main(int argc, const char * argv[])
{
CFNotificationCenterRef distCenter;
CFStringRef evtName = CFSTR("com.apple.logoutInitiated");
distCenter = CFNotificationCenterGetDistributedCenter();
if (NULL == distCenter)
return 1;
CFNotificationCenterAddObserver(distCenter, NULL, &myCallBack, evtName, NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
CFRunLoopRun();
return 0;
}

上述解决方案已过时。尝试此事件名称:

CFStringRef evtName = CFSTR("com.apple.system.loginwindow.shutdownInitiated");

最新更新