begin process at 2012 05 28 13:17:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Application lanceur programmes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Application lanceur programmes

lundi 15 janvier 2007 à 13:58:02 | Application lanceur programmes

aurelien2723

Salut!

Je voudrais réaliser un programme qui permet d'appeler un exécutable à une période définie.
Il faut donc que mon programme n'attende pas la fin de l'autre pour pouvoir continuer à compter le temps.

J'utilises du C++ classique (C++/GCC).
Comment je pourrais faire ceci, sachant que la fonction system() est bloquante...

Merci bien :)

Aurélien
lundi 15 janvier 2007 à 14:16:41 | Re : Application lanceur programmes

yoyo269

Membre Club
Salut aurelien,

si tu rajoutes windows.h, je pense que tu pourras te servir de la fonction ShellExecute qui n'est pas bloquante.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

lundi 15 janvier 2007 à 14:39:32 | Re : Application lanceur programmes

aurelien2723

Merci pour ta réponse.

En appelant mon programme comme ceci :
ShellExecute("mail.exe G150");

j'obtiens cette erreur à la compilation :

mondialogueimpl.cpp: In member function `void MonDialogueImpl::slotChangeTitre()':
mondialogueimpl.cpp:20: error: cannot convert `const char*' to `HWND__*' for argument `1' to `HINSTANCE__* ShellExecuteW(HWND__*, const WCHAR*, const WCHAR*, const WCHAR*, const WCHAR*, INT)'
mingw32-make[1]: *** [release\mondialogueimpl.o] Error 1
mingw32-make: *** [release] Error 2

si quelqu'un a une solution pour la résoudre svp :$

Merci :)



lundi 15 janvier 2007 à 14:50:45 | Re : Application lanceur programmes

turnerom

Salut, je te conseil de threadé ton appel à system, en utilisant les threads de boost, tu auras en plus un prog portable d'un OS a l'autre.

#include <boost/thread/thread.hpp>

void uneFonction()
{
boost::thread unThread(&system(
"mail.exe G150"));
}




TuRn3r
lundi 15 janvier 2007 à 14:51:40 | Re : Application lanceur programmes

yoyo269

Membre Club
Houla oui il te manque plein de choses ! lol
Voilà un exemple d'utilisation :
ShellExecute(NULL, NULL, "mail.exe", 0, 0, SW_SHOWNORMAL);

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

lundi 15 janvier 2007 à 15:08:14 | Re : Application lanceur programmes

aurelien2723

La portabilité  ne m'intéresse pas, le programme tournera uniquement sous Windows.
La solution de yoyo me plait, j'avais peur de devoir passer par des for()k et des exec() ....
a peu prêt équivalent au thread quoi...
info je me pencherai peut-etre sur ta solution turnerom, mais qu'est cette classe boost ?

Effectivement yoyo, c'est pas bien ce que j'ai fait, j'ai même pas chercher la définition de la fonction...
Par contre j'ai la même erreur avec l'argument 3 cette fois....

Merci :)

lundi 15 janvier 2007 à 15:13:58 | Re : Application lanceur programmes

yoyo269

Membre Club
Si tu veux passer des arguments à ton exe faut faire ça (vu dans la doc ) :
ShellExecute(NULL, NULL, "mail.exe", "G150", 0, SW_SHOWNORMAL);

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

lundi 15 janvier 2007 à 15:21:07 | Re : Application lanceur programmes

aurelien2723

désolé mais

ShellExecute(NULL, NULL, "mail.exe", "G150", 0, SW_SHOWNORMAL);

me donne toujours :

mondialogueimpl.cpp: In member function `void MonDialogueImpl::slotChangeTitre()':
mondialogueimpl.cpp:21: error: cannot convert `const char*' to `const WCHAR*' for argument `3' to `HINSTANCE__* ShellExecuteW(HWND__*, const WCHAR*, const WCHAR*, const WCHAR*, const WCHAR*, INT)'
mingw32-make[1]: *** [release\mondialogueimpl.o] Error 1
mingw32-make: *** [release] Error 2



Merci :)
lundi 15 janvier 2007 à 15:26:17 | Re : Application lanceur programmes

yoyo269

Membre Club
Ah ! C'est que tu es en UNICODE !
Dans ce cas, je suppose qu'il faut que tu convertisses les chaines en UNICODE.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

lundi 15 janvier 2007 à 15:43:17 | Re : Application lanceur programmes

aurelien2723

Je me doutais qu'il me manque quelque chose puisqu'il ne reconnait pas le type WCHAR* ...
Par contre comment faire?
J'ai déjà testé ça :
WCHAR* toto = "mail.exe";

mais le compilo refuse...
ou encore le cast sur la commande :
ShellExecute(NULL, NULL, (WCHAR*)"mail.exe", "G150", 0, SW_SHOWNORMAL);

veut pas non plus...

Merci :)


1 2

Cette discussion est classée dans : programme, application, programmes, lanceur


Répondre à ce message

Sujets en rapport avec ce message

programme invisible [ par vdox05 ] J' aimerais savoir comment créer des programmes qui n' aient pas de fenêtre principale ouverte.Comme les icones que vous pouvez voir en bas et à droit Application en C++ Lancement de programme [ par BARA_Marie ] Jean-LucCaomment puis je empêcher une application en c++ de se recharger une deuxième fois si elle l'est déjà. ?Et comment faire lorsque je lance une Tâche de fond: comment communiquer avec l'utilisateur? [ par vychnou ] Bonjour à tous !Voici mon problème:je code un petit programme qui marche comme un supplément pour une grosse application.En clair, l'utilisateur est e programme graphique sous linux avec X11 de préférence (pour le portage) [ par coucou747 ] je recherche une façon de créer des programmes graphiques en c, j'ai cherché des heures sur le net des programmes en c utilisant des librairies comme Processus [ par ToToL ] BonjoursJ'ai un programme en mode : console application.j'aimerai savoir comment voir si mon application est déjà lancée ou non. s'il y a plusieurs me Execution indépendantes de deux programmes [ par Telepathmaster ] Bonjour,Je voudrais pouvoir, depuis un de mes programmes, en lancer un autre qui soit indépendant du premier. Car, pour l'instant, j'ai essayé en lanç contrôler l'accées à mes programmes [ par progrima ] bonjour tout le monde!! j'ai des applications qui sont déjà réalisées avec des langages différents, chez l'utilisateur il suffit d'installer le .exe a shellExecute [ par vincelefou ] Bonjour, J’aimerai faire un petit programme (en C + API) permettant de lancer une application en lui transmettant des paramètres. C’est possible avec Un programme qui en créé un autre. [ par darkdidi ] Bonjour!Je voudrais savoir comment faire un programme qui créé une application en prenant en compte des parametres de la part de l'utilisateur.Voici c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales