1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
// chemin de l'exe
const char guillemet = 0x22;
const char espace = 0x20;
std::string cheminExe = _config->getDossierRessources() + "/Test Saturation/LogicielVerificationSaturation.exe";
std::string parametres = _config->getCheminPrincipalSauvegarde() + "/Scripts Opus/Echanges";
std::string commande = guillemet + cheminExe + guillemet + espace + guillemet + parametres + guillemet;
std::replace( commande.begin(), commande.end(), '/', '\\');
LPTSTR szCmdline = _tcsdup(commande.c_str());
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// Start the child process.
if( !CreateProcess( NULL, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ) )
{
//récupération d'un message explicite associé au code d'erreur
LPSTR messageErreurExplicite = NULL;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError(), 0, (LPSTR)&messageErreurExplicite, 0,0);
throw std::exception( messageErreurExplicite);
} |
Partager