Gérer l'exécution de 2 logiciels en c++ ( visual C++)

sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009 - 16 juil. 2009 à 11:05
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 juil. 2009 à 19:33
Bonjour,
Je suis une étudiante en ingénierie réseaux et télécoms et je fais un stage où je dois programmer sur windows en C++, langage que je ne connais pas ( par contre je connais le c, l'ada, pascal, assembleur...)
Mon programme doit gérer l'interférence entre 2 logiciels.
Comment lancer un logiciel à partir de mon programme?
Comment simuler le click sur un boutton d'une barre à outils, et une saisie clavier ?
Comment simuler le click sur "ok" dans une boite de dialogue?
Comment activer et désactiver les fenêtres associées aux logiciels?

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 juil. 2009 à 12:39
1) CreateProcess ou ShellERxecute
2) Avec Spy++ tu vérifieras quel message est posté en cliquant toi meme sur le dit bouton.
Suffira ensuite par code:
PostMessage(hwnd, WM_COMMAND, idDuMessage, 0);
3) Ordinairement: PostMessage(hwnd, WM_COMMAND, IDOK, 0);
4) EnabbleWindow

A étudier:
http://brunews.com/brunews/download/CP5.zip
http://brunews.com/brunews/download/CP5Sources.zip

ciao...BruNews, MVP VC++
0
sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009
16 juil. 2009 à 14:38
Merci d'avoir répondu.
En fait, en cherchant un peu partout sur internet, j'ai trouvé 2 méthodes:
1-pour exécuter un autre programme:
// exécute le programme "toto.exe"
std::system( "toto.exe" );

2- CreateProcess ou ShellERxecute comme vous l'avez dit, dans le code suivant, pour le lancement de word, par exemple:

HINSTANCE nerror;
CString strApp="WINWORD";
nerror=ShellExecute(AfxGetMainWnd()->m_hWnd, NULL, strApp, NULL, NULL, SW_SHOWNORMAL);
if(reinterpret_cast(nerror) <= 32)
{
CString mess;
mess.Format("Erreur de lancement de l'application:\n%s Erreur n°:%d",(const char *)strApp,nerror);
AfxMessageBox(mess,MB_ICONEXCLAMATION);
}


ou




STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;

memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
if(CreateProcess(NULL,"c:\\windows\\notepad.exe c:\\mydir\\toto.txt",0,0,FALSE,
CREATE_DEFAULT_ERROR_MODE,0,0,
&siStartupInfo,&piProcessInfo) == FALSE)
{
// erreur
}



seulement dans ce cas, le compilateur ne reconnait aucun identificateur, je crois que c'est peut être parce que je n'ai pas inclus la bibliothèque spécifique, en fait je ne connais pas son nom.
Sinon c'est quoi le spy++?
excusez moi, je suis vraiment trop débutante

Merci !
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
16 juil. 2009 à 17:43
#include "Windows.h"
0
sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009
17 juil. 2009 à 09:41
Je viens d'essayer, j'obtiens le message d'erreur suivant:

1>.\simu_v1.cpp(4) : fatal error C1083: Impossible d'ouvrir le fichier include : 'windows.h' : No such file or directory
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 juil. 2009 à 19:33
#include <Windows.h>

avec des <>

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