fait :
regarde si il passe par la ligne de code ou essaye de lancer un programme avec WinExec pour voir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part path.c_str()
fait :
regarde si il passe par la ligne de code ou essaye de lancer un programme avec WinExec pour voir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part path.c_str()
ShellExecute ne peut lancer que des process executables (.exe). Il ne sait pas lancer un ".bat" ou autre.
==> il faut executer le programme "cmd.exe" (%COMSPEC%), et lui passer en parametre "/C xxxx.bat"
plus d'info sur le forum delphi ---> ICI
peut tu m'en dire plus sur ce (%COMSPEC%) ??Envoyé par pseudocode
voila sa marche !!!
c'etais donc ShellExecute(NULL,"OPEN","cmd.exe",path.c_str(),NULL,SW_SHOW);
COOL MERCI !!!!
now une petite question comment on fais pour que le prog attend le temps que mon bat s'install avant de passer a la suite ?
lol. tu vas rire... mais tu ne peux pas avec ShellExecute. Il faut utiliser "CreateProcess()" qui te retourne le PID du process et faire un WaitForSingleObject() sur le handle.Envoyé par Freektrax
Je sens que vous allez me demander le code...
tu te propose si gentillement alors je te le demande
Ce code est issu de ma bibliotheque personnelle de bordel pour C++Builder, donc n'attendez pas trop de doc ou de commentaire...
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 // Return value: Process ID (PID) int RunProcess(char *exename,char *param) { AnsiString strExeName = AnsiString(exename); AnsiString strCmdLine = AnsiString(exename)+" "+AnsiString(param); TStartupInfo StartupInfoHelp; TProcessInformation ProcessInformationHelp; ZeroMemory(&StartupInfoHelp,sizeof(TStartupInfo)); StartupInfoHelp.cb = sizeof(TStartupInfo); StartupInfoHelp.dwFlags = STARTF_USESHOWWINDOW; StartupInfoHelp.wShowWindow = SW_SHOWNORMAL; ZeroMemory(&ProcessInformationHelp,sizeof(TProcessInformation)); CreateProcess( strExeName.c_str(), strCmdLine.c_str() , NULL, NULL, true, 0, NULL, NULL, &StartupInfoHelp, &ProcessInformationHelp); return (int)ProcessInformationHelp.dwProcessId; } bool WaitForProcess(int pid) { HANDLE hProc; hProc=OpenProcess(SYNCHRONIZE,FALSE,pid); if (hProc) { WaitForSingleObject(hProc, INFINITE); CloseHandle(hProc); return true; } return false; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int iPID; iPID=RunProcess("c:\\winnt\\system32\\calc.exe",""); WaitForProcess(iPID);
peux tu me donner des info sur ton startupinfohelp ??
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager