Я пишу программу на языке C++/CLI, то есть с графическим интерфейсом. Но у меня есть в коде команда, которая выполняется через cmd, и из-за этого на 1 секунду консоль появляется поверх основного графического интерфейса. Всё работает, но хочется, чтобы консоль не показывалось. Можно ли как то запускать консоль бесшумно, чтобы команда отрабатывала, но сама консоль не появлялась? String^ username = textBox1->Text;
Прости их Господи, ибо не ведают они, что творят...
Люди, которые используют для запуска команд (через system или что-то подобное), относительные пути, нарываются на очень большие неприятности. Особенно если дело происходит в Windows, где исполняемый файл первым делом ищется в текущем каталоге. Любой, кто имеет право записи в этот каталог, сможет выполнить произвольный код в системе от имени пользователя, запустившего программу. Допустим, можно создать прослойку, которая будет вызывать настоящий mysqldump и при этом похищать и передавать злоумышленнику переданные в виде аргументов логин и пароль от базы.
Че то строка большая, я думал подумывал на
тоже самое ShellExecute()
или
CreateProcess()
Возможно и оттуда же через ShellExecute
ShellExecute(cmd /c "код выполнения"
ShellExecute(cmd /c ""mysqldump -u " + usernameStr + " -pUser -R -E test > C:\\Users\\TEST\\Desktop\\test.sql"
Но выполнится ли большой вопрос так как строка большая и с пробелами и тд, если ее в 1 строку не закрутить и отправить тот же самый команд.
newcmd = cmd /c + /" + command + /";
ShellExecute(command)
Точнее отправить как cmd /c
cmd /C Выполнение указанной команды (строки) с последующим завершением.
Если нет то записать эту команду в bat и запускать бат в скрытом режиме командой ShellExecute.
ShellExecute(start file.bat,0) или show_hide.
Короче оставишь свой телеграм 100 % решу твой вопрос я решал его себе уже.