ShellExecute [Résolu]

guitoulefoux 152 Messages postés lundi 24 mars 2003Date d'inscription 6 janvier 2009 Dernière intervention - 30 août 2005 à 13:10 - Dernière réponse : guitoulefoux 152 Messages postés lundi 24 mars 2003Date d'inscription 6 janvier 2009 Dernière intervention
- 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
guitoulefoux 152 Messages postés lundi 24 mars 2003Date d'inscription 6 janvier 2009 Dernière intervention - 1 sept. 2005 à 14:42
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"

Merci guitoulefoux 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de guitoulefoux
vinc1008881 259 Messages postés dimanche 22 août 2004Date d'inscription 29 septembre 2010 Dernière intervention - 30 août 2005 à 14:28
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
guitoulefoux 152 Messages postés lundi 24 mars 2003Date d'inscription 6 janvier 2009 Dernière intervention - 30 août 2005 à 14:29
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 30 août 2005 à 14:34
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
guitoulefoux 152 Messages postés lundi 24 mars 2003Date d'inscription 6 janvier 2009 Dernière intervention - 31 août 2005 à 10:53
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
daetips 142 Messages postés jeudi 10 juillet 2003Date d'inscription 10 novembre 2007 Dernière intervention - 1 sept. 2005 à 14:39
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.