From 294d9234c16e15d7471ec7d9a24f51a082b63134 Mon Sep 17 00:00:00 2001 From: Peter Repukat Date: Sun, 15 Apr 2018 15:45:55 +0200 Subject: [PATCH] SteamTarget: cd to program-dir before launching program --- SteamTarget/SteamTarget.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/SteamTarget/SteamTarget.cpp b/SteamTarget/SteamTarget.cpp index 449cc1b..09314d5 100644 --- a/SteamTarget/SteamTarget.cpp +++ b/SteamTarget/SteamTarget.cpp @@ -214,10 +214,15 @@ void SteamTarget::launchApplication() { // To get our launched application not get hooked by Steam, we have to launch through Windows explorer // To use arguments, launching using explorer, we have to use a batch file... - const QString batchContents = '\"' + QDir::toNativeSeparators(QString::fromStdString(launch_app_path_)) - + '\"' + " " + QString::fromStdString(launch_app_args_); - QFile file("launchApp.bat"); + QString programPath = QDir::toNativeSeparators(QString::fromStdString(launch_app_path_)); + programPath = programPath.mid(0, programPath.lastIndexOf("\\")); + + const QString batchContents = + "cd \"" + programPath + "\"\n" + + '\"' + QDir::toNativeSeparators(QString::fromStdString(launch_app_path_)) + + '\"' + " " + QString::fromStdString(launch_app_args_); + QFile file(QString(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0) + "/launchApp.bat")); if (file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Truncate)) { QTextStream stream(&file);