Qt for Mac 设置软件开机自启动
来源:互联网 发布:java无限循环代码 编辑:程序博客网 时间:2024/05/19 10:34
在Qt程序中设置Mac软件的开机自启动,通过调用object-c代码来实现。
目前只测试过在非沙盒的环境下设置开机自启动,沙盒环境下没有测试过(设置方式不同,会比较复杂)
新建类,定义接口
void setAutoStart(QString appPath,bool isAutoStart);
类定义:
其中 appPath是软件当前的位置,调用方式:
ischecked为真时 打开,为false时关闭开机自启动
调用方式:OSXUtil::GetInstance()->setAutoStart(QCoreApplication::applicationFilePath(),ischecked);
// To convert a QString into NSString *#define QStringToNSString(s) [NSString stringWithUTF8String:s.toUtf8().data()]void OSXUtil::setAutoStart(QString appPath, bool isAutoStart){ if(isAutoStart) { LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL); //url为app所在的目录 CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:QStringToNSString(appPath)]; LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(loginItems, kLSSharedFileListItemLast, NULL, NULL, url, NULL, NULL); CFRelease(item); CFRelease(loginItems); } else { UInt32 seedValue; CFURLRef thePath; LSSharedFileListRef loginItems = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL); CFArrayRef loginItemsArray = LSSharedFileListCopySnapshot(loginItems, &seedValue); for (id item in (NSArray *)loginItemsArray) { LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)item; if (LSSharedFileListItemResolve(itemRef, 0, (CFURLRef*) &thePath, NULL) == noErr) { //appPath目录为要取消开机启动app的路径 if ([[(NSURL *)thePath path] hasPrefix:QStringToNSString(appPath)]) { LSSharedFileListItemRemove(loginItems, itemRef); // 删除指定的启动项 } CFRelease(thePath); } } CFRelease(loginItemsArray); CFRelease(loginItems); }}
0 0
- Qt for Mac 设置软件开机自启动
- 开机自启动软件设置
- Qt及Nsis设置开机自启动
- Qt for android 开机自启动、开机黑屏处理
- Qt 开机自启动
- 开机自启动软件
- 软件开机自启动
- qt for android实现程序的开机自启动。
- 设置开机自启动
- MAC一句话分享——开机自启动设置
- 设置软件开机自启动(C#实例演示)
- Linux(CentOS)下设置自编译软件开机启动
- 软件开机启动设置
- Mac 开机自启动 httpd
- Qt之开机自启动
- Qt windows开机自启动
- tiny6410 开机qt 自启动
- Qt之开机自启动
- 在前端开发中值得推荐的常用工具
- Linux中sed命令介绍
- 简单高效的图片降噪方法
- vs2012 格式化代码和快速注释快捷键
- 2017-1-15
- Qt for Mac 设置软件开机自启动
- Python 栈和队列
- SKStoreProductViewController中的坑
- android webView工具类
- C++易错:(四)&&与&
- PyQt5的学习之路(二)
- AOP动态代理实例
- JDK的安装与配置
- Android客户端与服务器端交互 如何保持session