试图从std :: cout执行.exe

时间:2011-09-18 14:15:46

标签: c++ std

我有一个C ++程序,它读取配置文件并获取目录。 我现在要做的是使用配置文件中的目录设置执行.exe程序。

这是我的一段代码:

int main(){

ConfigFile cfg("htbaseconfig.properties");

bool exists = cfg.keyExists("backuplocation");
exists = cfg.keyExists("logdir");
exists = cfg.keyExists("execdir");
exists = cfg.keyExists("fulldir");
exists = cfg.keyExists("incdir");
exists = cfg.keyExists("appdir");

std::string bkploc = cfg.getValueOfKey<std::string>("backuplocation");
std::cout << "Backup Location: " << bkploc << "\n";

std::string bkplogdir = cfg.getValueOfKey<std::string>("logdir");
std::cout << "Log Location: " << bkplogdir << "\n";

std::string bkpexec = cfg.getValueOfKey<std::string>("execdir");
std::cout << "Exec Directory: " << bkpexec << "\n";

std::string bkpfulldir = cfg.getValueOfKey<std::string>("fulldir");
std::cout << "Full Directory: " << bkpfulldir << "\n";

std::string bkpappdir = cfg.getValueOfKey<std::string>("appdir");
std::cout << "Real app Directory: " << bkpappdir << "\n\n\n";

for( ; ; ) {

Sleep(6000);

ShellExecute(NULL, L"open", , L"C:\\teste.htm", NULL,SW_SHOWNORMAL);

}

std::cin.get();
return (0);}

在ShellExecute中,我想执行以下行解析配置选项:

$execdir/program.exe $logdir/log.txt $bkpappdir $bkploc

我该怎么做?我想用std::cout上的变量执行我的程序。

1 个答案:

答案 0 :(得分:1)

您必须向ShellExecute而不是第二个NULL传递包含所有参数的字符串(c字符串,char []),例如,如果要将它们传递给命令行。

所以会像

ShellExecute(NULL, L"open", , L"C:\\teste.htm", "option=param option2=param2",SW_SHOWNORMAL);

取决于你如何从其他exe文件中解析它们(或如何解析它们)