Давай разберем.
Справочно:
http://www.cyberforum.ru/delphi-begi...read21742.html
Твой вызов
Код:
uses ShellApi;
...
ShellExecute(0, nil, pChar(ExtractFiledir(paramStr(0))+'\SB.ProgramsTool.exe'), pchar(CmStr), nil, 5);
означает: в отдельном окне открыть программу с именем SB.ProgramsTool.exe, находящуюся в той же директории, что и текущая программа, передать ей список параметров, находящийся в переменной CmStr, каталог по умолчанию -- текущий, стиль окна = 5.
system воспринимает только один параметр -- командную строку. Возможно, существуют другие вызовы, аналогичные ShellExecute(), особенно в windows.
То есть для того, чтобы воспользоваться system(), нужно построить эту командную строку. Прямой перевод с твоего примера на дельфи будет:
Код:
std::strinfg cmdline;
cmdline=".\\SB.ProgramsTool.exe "+CmStr; // [sic] extra space between '.exe' and '"'
system(cmdline.c_str());
А кавычки в списке параметров -- это где-то отдельно, так же как и формирование CmStr в твоем коде
Пример был на C++, на чистом C немного по-другому:
Код:
char cmdline[1024]={".\\SB.ProgramsTool.exe "};
strcat(cmdline,CmStr);
system(cmdline);
[/b]