ShellExecute [Résolu]

Messages postés
152
Date d'inscription
lundi 24 mars 2003
Dernière intervention
6 janvier 2009
- - Dernière réponse : guitoulefoux
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Dernière intervention
6 janvier 2009
- 1 sept. 2005 à 14:42
Bonjour,

J'ai fais une DLL qui lance un:
ShellExecute(0,"open","C:\\test.exe",0,0,SW_NORMAL);

Et là, il se passe une chose très bizzar:
Le progarmme se lance (il est bien dans les process de task manager), mais la fenetre (win32) non.
J'ai regardé sur msdn et je me demande si je ne devrais pas mettre le chemin d'execution du programme dans ShellExecute.

Pourriez vous m'aider SVP.

Cordialement,

GuitouLeFoux
"Le secret du sage est de briller dans l'ombre"
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Dernière intervention
6 janvier 2009
3
Merci
Merci de ta réponse mais j'ai trouvé la solution:

http://www.cppfrance.com/forum.v2.aspx?ID=549153

GuitouLeFoux
"Le secret du sage est de briller dans l'ombre"

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de guitoulefoux
Messages postés
259
Date d'inscription
dimanche 22 août 2004
Dernière intervention
29 septembre 2010
0
Merci
aparement SH execute ton programme, sa foire au niveau de l'affichage, esaye de mettre



SW_SHOW au lieu de SW_NORMAL
Commenter la réponse de vinc1008881
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Dernière intervention
6 janvier 2009
0
Merci
Merci pour cette réponse, mais j'ai déjà essayé cela sans succes.

GuitouLeFoux
"Le secret du sage est de briller dans l'ombre"
Commenter la réponse de guitoulefoux
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
0
Merci
ShellExecute(0,"open","C:\\test.exe",0,"C:\",SW_NORMAL); ?
Peut être ton programme a-t-il besoin de ressources qui se trouvent dans son répertoire? Sinon, il faut que tu teste dans test.exe toutes les fonction qui pourraient échouer, par ex: if(!CreateWindow(...)) MessageBox(...)

Mais comme tu utilise un executable, tu as autant intérêt à utiliser CreateProcess. ShellExecute c'est surtout pour ouvrir un fichier avec le programme qui convient
Commenter la réponse de vecchio56
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Dernière intervention
6 janvier 2009
0
Merci
Bonjour,

Voici les nouvelles en fonction de vos réponses et des codes que j'ai trouvé sur le site.

ShellExecute(0,"open","C:\\test.exe",0,"C:\",SW_NORMAL);
et
ShellExecute(0,"open","C:\\test.exe",0,0,SW_NORMAL);
et
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWNORMAL;
CreateProcess(0,"C:\test.exe",0,0,FALSE,CREATE_SUSPENDED,0,0,&si,&pi);
ResumeThread(pi.hThread);
CloseHandle(pi.hThread);

lancent le programme mais seulement à moitié.
Quelques morceaux de code s'executent, mais les fenetres ne s'affiche pas.

De plus il n'y a ce probléme uniquement quand je lance les codes ci dessus, depuis ma DLL (si je les executent d'un exe ca fonctionne).

Je suis vraiment perdu là.

GuitouLeFoux
"Le secret du sage est de briller dans l'ombre"
Commenter la réponse de guitoulefoux
Messages postés
142
Date d'inscription
jeudi 10 juillet 2003
Dernière intervention
10 novembre 2007
0
Merci
ta dll est-elle injecté dans un service par hasard?

Daetips
Commenter la réponse de daetips

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.