我有一个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
上的变量执行我的程序。
答案 0 :(得分:1)
您必须向ShellExecute而不是第二个NULL传递包含所有参数的字符串(c字符串,char []),例如,如果要将它们传递给命令行。
所以会像
ShellExecute(NULL, L"open", , L"C:\\teste.htm", "option=param option2=param2",SW_SHOWNORMAL);
取决于你如何从其他exe文件中解析它们(或如何解析它们)