Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Использование WinExec


Автор: Oberon83 5.6.2006, 12:51
Помогите пожалуйста запустить с помощью WinExec следующую конструкцию:
C:\Program Files\Borland\CBuilder6\Projects\123\tools\gbak.exe -b C:\Program Files\Borland\CBuilder6\Projects\123\base\protokoly.gdb C:\res.bak -user SYSDBA -pas masterkey

Если писать, используя относительные пути - все работает:
Код

AnsiString path_tools;

path_tools = "tools\\gbak.exe -b base\\protokoly.gdb C:\\res.bak -user SYSDBA -pas masterkey";

WinExec(path_tools.c_str(), SW_NORMAL);


Все работает на УРА.
А когда ставлю 
Код
 path_tools = "C:\\Program Files\\Borland\\CBuilder6\\Projects\\123\\tools\\gbak.exe -b C:\\Program Files\\Borland\\CBuilder6\\Projects\\123\\base\\protokoly.gdb C:\\res.bak "  

WinExec выдает ошибку 0 - не хватает системных ресурсов...

Вполне возможно, что WinExec воспринимает путь только до первого пробела, т.е. C:\\Program, как от этого можно избавиться??? Нет ли какого-нибудь символа заменяющего пробел???

Писал бы в относительных путях, только проблема в том, что пути выбирает пользователь, а что ему в голову взбредет???...

Заранее благодарен...
 

Автор: _hunter 5.6.2006, 13:07
а почему бы ShellExecute (не говоря уже о CreateProcess) не использовать?..
 

Автор: Oberon83 5.6.2006, 13:17
_hunter, спасибо, нашел... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)