[Qt] Uruchamianie nowej aplikacji z poziomu programu

0

Witam serdecznie.

Szukałem na wielu forach odpowiedzi ale jak to bywa, nie znalazłem.
Chce uruchomić nową, taką samą aplikacje, z poziomu tej aplikacji. Nowa aplikacja znajduje się w innym folderze na dysku. Dodam, że aplikacje korzystają z niezależnych plików tekstowych umieszczonych w folderze z plikiem .exe. Otwarcie aplikacji przebiega pomyślnie, wszystko śmiga.

      QString path = "\"C:/Users/OSKI/Desktop/client/client1/client.exe\"";
      QProcess::startDetached(path);

Problem pojawia się, gdy nowo uruchomiona aplikacja otwiera plik tekstowy w celu wczytania danych. Okazuje się, że wczytuje dane, ale z pliku należącego do aplikacji, która wywołała uruchomienie tej aplikacji. Potwierdza to też fakt, że nie ma dostępu do plików aplikacji pierwszej, jeśli aplikacja druga jest włączona. Kolejną sprawą jest, że nie jestem w stanie usunąć bibliotek z folderu aplikacji pierwszej (oczywiście po uprzednim jej wyłączeniu) gdy druga działa. Czyli znowi - korzysta z bibliotek z kompletnie nie swojego folderu.

Kod do otwierania pliku:

    QString filePath = QDir::currentPath() + "/MyName.txt";
    qDebug() << filePath;
    QFile *file = new QFile(filePath);
    if(!file->open(QFile::ReadOnly | QFile::Text)) return;

    QTextStream in(file);
    QString name = in.readAll();
    this->setWindowTitle(name);
    file->close();  // usunąłem na czas testowania
    this->name = name;

Próbowałem zrobić to samo za pomocą funkcji z windows.h

      system("start C:/Users/OSKI/Desktop/client/client1/client.exe");

efekt dokładnie ten sam.

Ma ktoś pomysł czemu tak jest, lub może ja nie jestem doinformowany co do działania tych funkcji i tak musi być ;/

1

Zapewne trzeba wskazać ścieżkę katalogu roboczego.

  QString path = "\"C:/Users/OSKI/Desktop/client/client1/client.exe\"";
  QString directory = "\"C:/Users/OSKI/Desktop/client/client1\"";
  QProcess::startDetached(path, {}, directory);
 
0

Super działa :) Dziękuje bardzo za pomoc, w ogóle nie zauważyłem tego parametru ;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1