Bonjour,
je reviens.
Pour lancer un programme, j'utilise :
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
 
void TfProgrammes::LancerProgramme(AnsiString asProg)
{
  // Lancement du programme
  STARTUPINFO StartupInfo;
  ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));
  StartupInfo.cb = sizeof(STARTUPINFO);
 
  PROCESS_INFORMATION  ProcessInfo;
  if(CreateProcess(asProg.c_str(), NULL, NULL, NULL,NULL,
		NULL, NULL, NULL, &StartupInfo, &ProcessInfo))
  {
	CloseHandle(ProcessInfo.hProcess);
	CloseHandle(ProcessInfo.hThread);
  }
}
Cela fonctionne très bien avec la plupart des programmes, mais j'ai
l'impression que pour les programmes écrits avec C++Builder il y a un os.
J'obtiens une "Violation d'accès à l'adresse 00402BEF, etc".
Cela se produit à l'instruction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Application->CreateForm(__classid(TForm1), &Form1);
Quelqu'un saurait-il ce qu'il faut modifier.
J'ai essayé avec ShellExecute() et ça n'allait pas mieux.
Merci