我在MacOS上用QT / C ++编写了一个应用程序。
应用程序只是一个代理,用于检查USB设备是否已连接。如果是,则启动应用程序。
“LaunchAgent.app”的代码如下所示,以检测并启动:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
UsbDetection *MyUSBDevice = new UsbDetection;
if(MyUSBDevice->isConnected() == true) {
QString agentExecutableDirPath = QApplication::applicationDirPath();
QString fileBrowserExecutablePath = agentExecutableDirPath + "/../../../../MacOS/connect";
QProcess *process = new QProcess();
process->start(fileBrowserExecutablePath);
}
return 0;
}
我还尝试通过以下方式替换路径: QString fileBrowserExecutablePath = agentExecutableDirPath +“/../../../../../../ connect.app”;
此代理“LaunchAgent.app”当前存储在应用程序包“connect.app”中。应用程序包名为“connect.app”,包含:
connect.app/
Contents/
Frameworks/
MacOS/
connect
Plugins/
Resources/
LaunchAgent.app
任何想法,为什么一旦LaunchAgent.app启动,设备连接,connect.app就没有启动。
该应用似乎正在尝试启动,因为该应用还会创建一个日志文件。 connect.app创建他的日志文件,但它是空的,如应用程序启动,但后来被杀死。也许使用process-> start不是最好的选择
由于