Lancer un exe avec son programmme

cs_zoreol Messages postés 10 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 23 avril 2003 - 17 mars 2003 à 14:31
nouveaufrombxl Messages postés 1 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 - 6 juil. 2005 à 08:35
je veut lancer un exe et recuperer se qu'il affiche(ou retourne) a partir de mon programme j'y arrive avec Win exec mais je n'arrive pas a recup se qu'il retourne comment faire,???

12 réponses

cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
17 mars 2003 à 14:42
salut !
lorsque tu lance un pgm avec WinExec, tu le lances dans un autre Process (donc un autre espace mémoire). Tu ne peux plus le contrôler directement, il faut pour cela faire de l'IPC (inter processus call)
le plus simple est de récupérer un handle sur sa fenêtre principale (par FindWindow) et de lui envoyer des messages (par PostMessage)
bon courage
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 mars 2003 à 14:52
sur Win32 exemple:
DWORD lerror;
void ProgRun(char *szprog)
{
PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)};// si.wShowWindow SW_HIDE; si.dwFlags STARTF_USESHOWWINDOW; // ligne pour Win95
DWORD dwExit;
BOOL bok = CreateProcess(0, szprog, 0, 0, 0,
CREATE_SUSPENDED | CREATE_NO_WINDOW, 0, 0, &si, &pi);
lerror = -1; // fatale supposee
if(bok) {
ResumeThread(pi.hThread);
CloseHandle(pi.hThread);
dwExit = WaitForSingleObject(pi.hProcess, 480000); // attente 8 minutes maxi exemple
if(dwExit == WAIT_OBJECT_0) GetExitCodeProcess(pi.hProcess, &lerror);
CloseHandle(pi.hProcess);
}
}
BruNews, ciao...
0
superpa Messages postés 113 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 5 janvier 2004
17 mars 2003 à 14:52
#include <stdlib.h>

int main(int argc, char* argv[])
{
system("chemin (absolu, relatif ou en tennat cpte du path) de l'exécutable");
// exemple: c:\\a.exe
return 0;
}

A bientôt,
P-A
0
superpa Messages postés 113 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 5 janvier 2004
17 mars 2003 à 14:55
C'est quand même plus simple.
si t'as des espaces dans le nom: pas oublier de l'entourer de ":

system(""c:\\Program Files\\WinZip\\WZSEPE32.EXE"");

A bientôt,
P-A
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 mars 2003 à 14:58
et c'est quand qu'il recupere le retour du prog ?
BruNews, ciao...
0
superpa Messages postés 113 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 5 janvier 2004
17 mars 2003 à 15:33
Oups, j'avais oublié ce léger détail.
Sorry de la distraction.

A bientôt,
P-A
0
cs_zoreol Messages postés 10 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 23 avril 2003
17 mars 2003 à 16:34
merci mais C koi lerror?
0
cs_zoreol Messages postés 10 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 23 avril 2003
17 mars 2003 à 16:57
En plus je rentre jamais dans le if (bok);
car G des commende aussi quand j'appel mon exe:
""C:\\Apache2\\bin\\htpasswd -nb utilisateur fred fred""
utilisateur fred fred sont les commande C sa amon avis qui fait buger le truc.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 mars 2003 à 17:13
c'est dans ces 32 bits que se reporte la valeur de sortie du prog que tu lances.
Tu pourrais aussi bien retourner la valeur depuis la fonction serait idem. Juste que je suis alle copier un morceau de code d'un prog perso alors j'ai pas pris le temps de tout modifier.
BruNews, ciao...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 mars 2003 à 19:06
C'est bon ou il te faudra exemple complet, lanceur et appele ?
Uniquement du Win32 si t'interesse.
BruNews, ciao...
0
cs_zoreol Messages postés 10 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 23 avril 2003
18 mars 2003 à 10:19
Jarrive tjours pas si il y avais des exemple avec plus d'explication se serai pas mal.merci.
0
nouveaufrombxl Messages postés 1 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
6 juil. 2005 à 08:35
Bonjour,
Comment peut on utiliser les commandes awk en c pour recuperer un champs bien precis d'un fichier .csv ?
Merci pour votre aide.
0
Rejoignez-nous