Доброго времени суток!
Такая проблема: uac запрещает чтение и запись в папке system32 и из неё нельзя запускать команды(это моё предположение)
Приложение моё запускается от имени администратора. Мне нужно запускать bcdedit и получать его вывод и возвращаемое значение.
Пробовал через QProcess::start(), QProcess::startDetached и system(). Также пытался запустить батник, который запускал bcdedit. Ещё пытался указать полный путь до файла и в клвычках, и без. Но ничто из этого не заработало. Примечательно то, что с помощью того же QProcess::start я запускал mountvol и всё работало.
Как это исправить?
Огромное спасибо!
А тут что после неудачного запуска? QProcess::errorString()
Попробуйте задать полный путь к ехе файлу, или добавить папку где ехе файл в переменную PATH из environment в объекте QProcess.
Если запускаете из 32 битной программы 64 битную системную программу, то следует использовать функцию WinAPI Wow64EnableWow64FsRedirection для включения и выключения принудительных редиректов путей.
Игорь Джулай, ничего. Причём я пытался запускать и через winapi, всё равно не получается.
зы Та ошибка разшифровывается как Process failed to start: Не удается найти указанный файл.
proc.start("bcdedit");
Profi_GMan, а вы делаете 32 битную или 64 битную программу?
На 64 битной системе из 32 битной проги без Wow64DisableWow64FsRedirection не получится запустить.
Profi_GMan, по ссылке что я прислал есть пример использования на С++
А с QProcess то лучше всегда, даже если аргументов нет, их в QStringList передавать.
название файла bcdedit.exe должно сработать, это средства файл менеджеров позволяют запускать бинарник без указания расширения.
Игорь Джулай, Очередной раз Вы мне-всенезнающему помогли. Огромное спасибо!
Использовал Wow64EnableWow64FsRedirection(FALSE)
Прочитав https://blog.not-a-kernel-guy.com/2009/04/03/482/ , понял, что после запуска надо вернуть всё обратно, с помощью Wow64EnableWow64FsRedirection(TRUE)
Добавьте, пожалуйста, это в свой ответ, чтобы другие сразу увидели решение
Игорь Джулай, За многократную помощь по вопросам, связанными с моей прогой, я хочу Вас добавить в особые благодарности. Как вас туда добавить? Ссылка и имя\ник