2011-09-18 3 views
0

J'ai un programme C++ qui lit un fichier de configuration et récupère les répertoires. Ce que je veux faire maintenant est d'exécuter un programme .exe en utilisant les paramètres du répertoire à partir du fichier de configuration.Essayer d'exécuter .exe à partir de std :: cout

Voici un morceau de mon code:

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);} 

A l'intérieur du ShellExecute, je voulais exécuter la ligne suivante analyse syntaxique des options de configuration:

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

Comment puis-je faire? Je veux exécuter mon programme avec les variables que j'obtiens sur std::cout.

+0

'std :: string's peuvent être concaténés, si vous Je vais avoir des problèmes avec le fait que vous avez vraiment besoin de travailler avec 'std :: wstring's. –

Répondre

1

Vous devez passer à ShellExecute, au lieu de la seconde NULL, une chaîne (c chaîne, un caractère []) qui contient tous les paramètres, comme si vous les transmettiez à la ligne de commande.

Alors Sera quelque chose comme

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

dépend de la façon de les analyser (ou comment ils sont analysables) de l'autre fichier exe

Questions connexes