Когда я запускаю команду "C:\Program Files\Git\git-bash.exe" "--cd=Path\to\folder
из консоли (cmd.exe) он открывает программу git-bash.exe и передает ей аргумент --cd=Path\to\folder.Но если я запущу ту же команду через ShellExecute в C++, git-bash.exe не откроется.
Код: Выделить всё
void ShlExec(const wchar_t* pCmd)
{
std::wstring cmd = L"/c " + std::wstring(pCmd);
ShellExecute(NULL, L"Open", L"cmd", cmd.c_str(), NULL, 0);
}
Чтобы ShellExecute выполнил команду, мне нужно передать ключ аргумента без кавычек и значение в кавычках, т.е. вот так: "C:\Program Files\Git\git- bash.exe" --cd=
Путь\к\папке
Однако не я пишу эти команды. Я читаю эти команды из реестра HKEY_CLASSES_ROOT\Directory\Background\shell и заранее не знаю, где и какие кавычки нужно убрать.
Мне нужен способ выполнять команды из реестра через ShellExecute так же, как я могу выполнять их напрямую из командной строки (cmd.exe) без передергивания кавычками.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... d-properly