Как открыть любое приложение через программу c / c ++ с кроссплатформенным подходом, отличным от qt? - PullRequest
0 голосов
/ 20 марта 2020

Привет, я хочу открыть любое приложение, которое было установлено в системе через терминал или программу c / c ++.

Причина, по которой я сказал через терминал или c / c ++, - это команда, которую мы используем в терминале, также можно использовать в программе c / c ++ !!.

Я ссылался на эту ссылку Открытое приложение C, но оно не кроссплатформенное. Я узнал, что команда system используется с open для запуска любого приложения из ma c. Например: - open -a "Google chrome" через терминал и, если требуется, в программе c / c ++, это будет system ("open -a 'Google chrome'"); .

Но как открыть любое установленное приложение в linux? Или Windows? а как сделать это кроссплатформенным c / c ++ ?? я знаю, что на основе макросов мы можем идентифицировать OS и выполнять соответствующие команды на основе OS . Но я хочу знать, чтобы открыть приложение в linux и windows?

Пример кода:

#include<iostream>
#include<cstdlib>

int main(){
    system("open -a 'Google chrome'");
    return 0;
}

Этот код работает в Ma c, но, основываясь на моих исследованиях, которые я нашел в linux, это должен быть путь к приложению, которого достаточно , Пожалуйста, кто-нибудь может уточнить это? Мне нужно кроссплатформенное решение !!

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете использовать Qt кроссплатформенную платформу C ++ , а для конкретного запуска процесса используйте QProcess для запуска программы или QDesktopServices :

#include <QtWidgets/QApplication>

#include <QProcess>
#include <QDesktopServices>
#include <QUrl>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // You can specify the path in some config file
    const QString pathToApp = "/usr/bin/google-chrome-stable";

    // Open an application by given path
    // No need to add "open" or some other OS-specific prefix
    QProcess::startDetached(pathToApp);

    // OR
    // Open target web address in a default system browser in any OS
    QDesktopServices::openUrl(QUrl("www.google.com"));

    return a.exec();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...