Urgent

Signaler
Messages postés
41
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
13 décembre 2008
-
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
-
j'ai voulu exécuter une commande dos en MFC sans qu'on m'ouvre la fenêtre dos.
j'ai utilisé le code suivant avec cmd ets une Cstring qui contient la commande à exécuter mais ça ne marche pas.
Veuillez m'aider svp.

STARTUPINFO si;
ZeroMemory(&si,sizeof(si)); // Clean
si.cb = sizeof(si); // Set size
PROCESS_INFORMATION pi; // Info
ZeroMemory(&pi,sizeof(pi)); // Clean
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
CreateProcess(cmd,NULL,NULL,NULL,false,0,NULL,NULL, &si, 0);

2 réponses

Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Tu peux en dire plus stp, parce que "ça ne marche pas" c'est un peu vague pour pouvoir t'aider.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
C'est extrait d'une interface MFC pour dosbox (un programme d'emulation du dos). C'est la commande ShellExecute qui fait le boulot que tu veux

void CShellCenterDoc::OnLaunch()
{
if ( ((CShellCenterApp *) AfxGetApp())->ProgramInstalled() && Export() ) {

// Build dosbox command line
DBAPPParameters Parameters = GetDBAPPPage (DBAPP_ONLYDRIVE);
CString strPathToExe = BuildCommandLine (CMDLINE_PATH, Parameters.m_bOnlyDrive);
CString strParameters = BuildCommandLine (CMDLINE_PARAM, Parameters.m_bOnlyDrive);

// Execute dosbox command line
ShellExecute(AfxGetMainWnd()->m_hWnd, "open", strPathToExe, strParameters, NULL, SW_SHOWNORMAL);

UpdateResultingCmdLine();
}
}