Spawn avec API

cs_ALCHAN Messages postés 4 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 14 décembre 2004 - 13 déc. 2004 à 16:31
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 déc. 2004 à 10:16
Débutant en API.
Comment exécuter un .exe ou .com externe en "spawn" avec API. Si possible de masquer la fenetre DOS s'il y a lieu ?
Merci

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 déc. 2004 à 16:48
ShellExecute

ciao...
BruNews, MVP VC++
0
cs_ALCHAN Messages postés 4 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 14 décembre 2004
14 déc. 2004 à 09:33
Merci BruNews,

J'ai essayé de comprendre avec la doc Borland, mais je suis à l'age des images et les exemples manquent ! Comment passet les arguments ... de reproduire en API l'équivallent en C++ de :

result = spawnl(P_WAIT, "C:\\Temp\\myprog.exe", "myprog.exe","arg1","arg2",NULL);

Merci de votre aide

PS: Le site pour trouver la doc CP5, JR4 ... est KO!
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 déc. 2004 à 10:16
Exemple avec attente d'execution d'1 minute maxi.

PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)};
DWORD dwExit;
BOOL bok = CreateProcess(0, szCommandLine, 0, 0, 0,
CREATE_SUSPENDED, 0, 0, &si, &pi);
if(bok) {
ResumeThread(pi.hThread);
CloseHandle(pi.hThread);
// ATTENTE 1 MINUTE MAXI, EXEMPLE
dwExit = WaitForSingleObject(pi.hProcess, 60000);
// SI TROP LONG, ON LE TUE
if(dwExit == WAIT_TIMEOUT){
TerminateProcess(pi.hProcess, 0);
}
CloseHandle(pi.hProcess);
}

Details de CreateProcess() dans MSDN:
http://www.msdn.microsoft.com/library/default.asp

ciao...
BruNews, MVP VC++
0
Rejoignez-nous