Qt - QProcess ne fonctionne pas
J'essaie de lancer internet explorer, Donc j'utilise le code ci-dessous
QProcess * process=new QProcess(this);
QString temp="C:\\Program Files\\Internet\ Explorer\\iexplore.exe";
process->startDetached(temp.toStdString().c_str());
Mais ça ne fonctionne pas.
OriginalL'auteur prabhakaran | 2010-11-15
Vous devez vous connecter pour publier un commentaire.
Essayer:
Vous devez utiliser échappé guillemets parce que le chemin d'accès a un espace, ou, éventuellement, d'échapper à tous les espaces (vous avez manqué
Program\ Files
dans le code que vous avez posté).Même plus facile que de s'échapper: l'utilisation startDetached(temp, QStringList()). Que l'on va faire échapper à lui-même. Je préfère toujours la variante de QProcess::start/startDetached etc. qui prend les arguments que QStringList, pour éviter de citer des questions.
presque, mais le problème est que le nom du programme a des espaces non les arguments, si vous avez encore besoin de citer ou de fuir le chemin.
Non, vous ne le font pas. Si vous utilisez la QStringList() de surcharge, il n'y a pas de citer nécessaire. QProcess::startDetached(QLatin1String("/chemin/vers/Foo Bar"), QStringList ()), alors que QProcess::startDetached(QLatin1String("/chemin/vers/Foo Bar")) échoue. Il n'y a pas de raison, dans le premier cas à interpréter "Bar" comme arguments, les arguments sont passés séparément. Qt fait la bonne Chose et construit le bon de commande en ligne à l'interne.
Hm, en fait jamais eu à utiliser cette avant, bon à savoir.
OriginalL'auteur Adam W
Comment à ce sujet?
OriginalL'auteur mosg