Accueil > Forum > > > > system() en hide
system() en hide
mardi 10 juillet 2007 à 04:05:15 |
system() en hide

Yunchi
|
Bonjour,
Est-il possible de ne pas afficher la fenetre de commande lorsque l'on lance un programme externe avec system("prog.exe"); ? Comme si on faisait ShellExecute(NULL,NULL,"prog.exe",NULL,NULL,SW_HIDE);
J'ai un probleme avec ShellExecute et avec system y'a pas ce probleme alors je me rabat sur system ....
Merci
|
|
mardi 10 juillet 2007 à 05:24:39 |
Re : system() en hide

SAKingdom
|
Ben, j'ignore si c'est possible avec system mais si tu nous exposais ton problème avec ShellExecute, on serait peut-être en mesure de le régler. C++ (@++)
|
|
mardi 10 juillet 2007 à 05:42:17 |
Re : system() en hide

Yunchi
|
En gros j'ai une interface avec gtk. Lorsque je clique sur un bouton, ca met la valeur contenu dans un gtk_entry dans un fichier puis ca lance un programme qui se sert de cette valeur. Avec system("prog"); ca marche bien : ca enregistre la valeur de l'entry dans le fichier puis ca lance le programme. En revanche avec ShellExecute, j'ai l'impression que ca lance d'abord le programme puis ca enregistre la valeur de l'entry dans le fichier ensuite meme si dans le code, on a bien d'abord l'enregistrement de la valeur dans le fichier et ensuite la commande ShellExecute.
|
|
mardi 10 juillet 2007 à 05:47:42 |
Re : system() en hide

SAKingdom
|
Je ne suis pas sûr de bien comprendre. Tu récupère une valeur que tu stock dans un fichier grâce à fwrite ou WriteFile ou peut-importe puis quand tu exécute ShellExecute, il ouvre le fichier sans prendre en compte les modifications c'est bien ça ? Peux-tu me montrer ce bout de code (où tu enregistre puis tu exécute ShellExecute) ? C++ (@++)
|
|
mardi 10 juillet 2007 à 06:48:23 |
Re : system() en hide

Yunchi
|
ca donne ca :
void connect_com(){
FILE* fp;
const gchar* temp;
fp = fopen("com.txt","w");
if (fp){
temp = gtk_entry_get_text(GTK_ENTRY(entry1));
fprintf(fp,temp);
fclose(fp);
}
system("connect.exe");
//ShellExecute(NULL,NULL,"connect.exe",NULL,NULL,SW_HIDE);
}
la fonction connecte n'a aucun probleme car ca marche parfaitement avec system mais pas bien avec ShellExecute. En fait, si je met ShellExecute, je dois lancer deux fois la fonction connect_com pour que ca soit la bonne valeur.
|
|
mardi 10 juillet 2007 à 10:39:21 |
Re : system() en hide

rt15
|
Salut, A la place de ShellExecute tu peux utiliser CreateProcess, avec le membre wShowWindow de STARTUPINFO à SW_HIDE. Concernant ShellExecute, tu peux essayer de passer "open" en deuxième paramètre, même si ça devrait le prendre comme tu met NULL.
|
|
mardi 10 juillet 2007 à 10:51:53 |
Re : system() en hide

Yunchi
|
euh elle m'a l'air bien complexe cette fonction :D
j'ai essaye CreateProcess(NULL, "connect.exe", NULL, NULL, FALSE, 0, NULL, NULL, SW_HIDE, &pi); mais pour le dernier paramatre je ne sais pas trop quoi mettre .....
sinon le 4e parametre c'est LPSECURITY_ATTRIBUTES lpThreadAttributes est-ce ca a un rapport avec les thread cad que ca lance le programme externe en parallele a une GUI par exemple ?
|
|
mardi 10 juillet 2007 à 11:52:29 |
Re : system() en hide

rt15
|
Pour le dernier, c'est plutôt normal que tu ne sache pas quoi mettre : c'est un paramètre de sortie. Il faut juste que tu lui passe l'adresse d'une structure PROCESS_INFORMATION non initialisée. Par contre, ton avant dernier paramètre n'est pas bon : il faut passer une STARTUPINFO, et initialisée elle. Pour LPSECURITY_ATTRIBUTES, il s'agit des droits du thread ce qu'il a le droit de faire et pas faire (Lire tel fichier, modifier tel clé...) Le processus est lancé en parallèle normalement... En tout cas dans le cas ou le lanceur est une GUI (On utilise WaitForSingleObject quand on souhaite attendre la fin d'un processus qu'on a lancé). STARTUPINFO siStartupInfo; PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo)); siStartupInfo.cb = sizeof(siStartupInfo); CreateProcess(NULL, "connect.exe", NULL, NULL, FALSE, 0, NULL, NULL, &siStartupInfo, &piProcessInfo);
|
|
mercredi 11 juillet 2007 à 04:11:12 |
Re : system() en hide

Yunchi
|
en fait j'ai vu le probleme avec ShellExecute ou CreateProcess je pense:
quand on a une fonction type :
void funct(){
instruction1();
system(); / ShellExecute(); / CreateProcess();
instruction2();
}
si on utilise system, ca execute l'instruction1, lance le prog externe avec system puis execute l'instruction2.
pour ShecllExecute ou CreateProcess, j'ai l'impression que ca exucute l'instruction1 puis execute l'instruction2 et enfin lance le programme externe.
c'est peut-etre du au fait que j'ai pas mis les bons parametres pour les fonctions ShellExecute ou CreateProcess ...
|
|
mercredi 11 juillet 2007 à 08:49:07 |
Re : system() en hide

rt15
|
Le truc, c'est que shellExecute ou CreateProcess n'attendent pas que le programme que tu lances soit terminer pour rendre la main au créateur, qui fort logiquement passe à l'instruction suivante. Pour attendre que le programme lancé soit terminé, on utilise WaitForSingleObject. STARTUPINFO siStartupInfo; PROCESS_INFORMATION piProcessInfo;
ZeroMemory(&siStartupInfo, sizeof(siStartupInfo)); siStartupInfo.cb = sizeof(siStartupInfo); CreateProcess(NULL, "connect.exe", NULL, NULL, FALSE, 0, NULL, NULL, &siStartupInfo, &piProcessInfo); WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
|
|
Cette discussion est classée dans : exe, system, prog, hide, shellexecute
Répondre à ce message
Sujets en rapport avec ce message
PROG EN C, C++ ou autre langage... [ par sremy ]
salut, je pose mon pb :Imaginons qu'on ai un prog. MS-DOS appelé prog1.exe qui une fois lancé est en attente d'un password dans la ligne de commande.
ShellExecute [ par michel1968 ]
Allo !Comment puis-je demandé si un programme est déjà ouvertavant d'exécuté ShellExecute.je pense par exemple quelque chose comme ca,----------------
Service + execution de prog java [ par Pedroalx ]
Bonjour je souhaite creer un service NT qui lance un programe java.J'ai deja reussis a creer un exe qui permet d'executer mon programme java, mais des
gros probleme shellexecute [ par morgandetoi06 ]
bonjour voila j ai un probleme :dj ai une liste de programme à executer, je met le nom des cdes programmes dans un tableau et les execute comme ceci :
Programme dans un autres comment faire ? O_o [ par oshin ]
Bijour,J'ai un autre petit souci, j'ai un programme .exe que j'ai deja mais dont je ne posséde pas la source et je voudrais savoir si il est possible
Récupération de la valeur de retour d'un .exe dans un prog en C [ par stephanieL ]
Salut tout le monde!Je voudrais lancer un exe d'un programme en c, et récupérer la valeur de retour de cet exe dans ce prog en c.Le main de l'exe à la
ShellExecute ne fonctionne pas et marche avec system [ par chasse18 ]
Bonjour je voudrais executer la ligne de commande suivante avec sellexecute pour éviter l'ouverture d'une feneetre DOSCOPY C:\0.mpg /B + C:\1.mpg /B c
ShellExecute dans une DLL executer par Winlogon de la base de registre [ par guitoulefoux ]
Bonjour,J'ai fais une DLL qui s'execute au Winlogon de mon OS (base de registre).Cette DLL doit normalement faire plusieurs tests et executer une autr
port // pas moyen de s'en servir... [ par baptor ]
salut à tous, je suis en train de développer une petite appli pour piloter des leds sur une carte electronique, par le port //.Rien de bien compliqué
Problem avec ShellExecute et System() [ par Sens0r ]
Salut,je rencontre des problèmes si j'essaie d'exécuter un fichier batch que je viens de créer avec mon prgramm C++.En effet le programme ne déclence
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|