ShellExecute не выполняет команду должным образомC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 ShellExecute не выполняет команду должным образом

Сообщение Anonymous »

Когда я запускаю команду "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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»