Question ShellExecute.

Becracker Messages postés 116 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 25 septembre 2005 - 30 août 2005 à 12:13
cs_morteza Messages postés 1 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 18 décembre 2005 - 18 déc. 2005 à 16:16
Salut les gars,





Je voudrais svp savoir à koi correspond
chaque partie inclue dans la parentèse ci-dessous (le 0 signifie koi ?,
le 1er nil signifie koi et kelles valeurs il peut prendre, le 2ème nil
de même, etc...)



ShellExecute(0,nil,'C:\test.exe',nil,nil,SW_SHOW);



Merci à tous d'avance.



-----------------------------------------




May Delphi and Php change the world ....

8 réponses

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
30 août 2005 à 12:24
Zéro est un handle neutre, car çà permet surement de faire des callbacks si tu appeles certains logiciels. En fait, çà identifie le possesseur de la commande même si ce n'est pas forcément lui qui a exécuté la commande.

nil vaudrait mieux qu'il y ait 'open'.

'c:\test.exe' est la commande a effectuer.

nil est la ligne de commande attribuée à l'application. Tu récupères avec ParamStr(1) dans ton EXE

nil est le répertoire d'ouverture par défaut. Ca permet de rechercher des fichiers en nom court. En lançant avec nil, le dossier par défaut est celui de l'application. Si tu fais un FileOpen sur 'test.dat', le fichier sera cherché dans CheminApplication\. Si tu mets 'c:\' au lieu du nil, il sera cherché c:\test.dat

Le dernier paramètre ordonne le mode d'affichage : agrandi, réduit, normal, caché...

===========
Validez les réponses si ok...

ViewVite XP : HTML
0
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
30 août 2005 à 13:28
Le premier handle identifie le processus (l'application en gros) rattaché au lancement.
Si il y a fhune erreur, c'est ton application qui récupère les messages d'erreurs.
Si c'est Nil, alors c'est explorer (windows en gros) qui récupère tout.
Ce handle sert en colaboration avec le dernier paramètre

Le deuxième (nil) peut en effet être 'open' mais en france, ça revient à nil.
en fait ce sont les options qu'il y a dans le menu contextuel dans l'explorateur.
Ainsi, quand on clique sur un fichier .TXT ou a en premier 'ouvrir', 'imprimer', 'modifier'. Et c'est ça qu'il faut mettre.
Si il n'y a rien ou si le verbe (c'est comme ça qu'on dit) est incorrect, le systeme utilise celui par defaut.
Donc quand on met 'open', pour un fichier TXT, ça n'existe pas dans windows en français mais comme l'option par defaut et 'Ouvrir', ça marche quand même.

Le deuxième est le non du programme à lancer (avec son chemin d'accès si nécessaire).

Le troisième est le ou les paramètre(s). Si on veut placer un paramètre avec espace (comme des nom longs) il faut bien respecter la notation. Càd mettre entre guillemets comme 'mon fichier.txt /test' à trois paramètre mais '"mon fichier.txt" /test' en a que deux.

Le quatrième est bien le repertoire d'ouverture par défaut.

Et enfin le dernier prend les constantes suivantes (traduction du site MSDN par mes soins...):
SW_HIDE = 0
Cache la fenêtre et active l'autre fenêtre


SW_MAXIMIZE=3
Maximise la fenêtre spécifier


SW_MINIMIZE=6
Minimise la fenêtre spécifier et active la fenêtre suivante dans l'ordre Z.


SW_RESTORE=9
Active et affiche la fenêtre. Si la fenêtre est minimisée ou maximisée, Windows la restore dans sa taille et sa position original. Une application devrait specifier ces drapeaux en restorant une fenêtre minimisée.


SW_SHOW=5
Active la fenêtre et l'affiche dans sa position et dimension courante.


SW_SHOWMAXIMIZED=3
Active la fenêtre et l'affiche en la maximisant.


SW_SHOWMINIMIZED=2
Active la fenêtre et l'affiche en la minimisant.


SW_SHOWMINNOACTIVE=7
Affiche la Fenêtre en la minisant. La fenêtre active reste active.


SW_SHOWNA=8
Affiche la Fenêtre tel quel. La fenêtre active reste active.


SW_SHOWNOACTIVATE=4
Affiche la fenêtre dans la dernier position et taille connue. la fenêtre active reste acrive.


SW_SHOWNORMAL=1
Active et affiche la fenêtre. Si la fenêtre est maximisée ou minimisée, windows la restore dans sa position et taille original. Une application devrait specifier ces drapeaux en s'affichant pour la première fois.


SW_SHOWDEFAULT=10
Met l'état d'affichage de base sur SW_FLAG spécifié dans la structure STARTUPINFO passé par la fonction CreateProcess par le programme au démarrage de l'application. L'application devrait appeler ShowWindow avec ce drapeau pour definir l'état initial de la fenêtre principale.

Voilà tout les secrets de ShellExecute.
0
Utilisateur anonyme
30 août 2005 à 14:53
Au niveau du répertoire pas défaut : je crois que c'est facultatif non????
Et le cinquième parametre il sert à quoi?

Possibilité de donner un exemple concret ???

Ouvrir un fichier word genre texte.doc et ouvrir juste word
0
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
30 août 2005 à 15:21
Ouvrir juste word :
shellexecute(0,nil,'C:\Program Files\Microsoft Office\word.exe',nil,nil,SW_SHOW);
ou
shellexecute(application.handle,nil,'C:\Program Files\Microsoft Office\word.exe',nil,nil,SW_HIDE);
ceci lance word et cache notre application.

Ouvrir un document word avec l'application par defaut:
shellexecute(0,nil,'C:\Program Files\Microsoft Office\word.exe','c:\mesdocs\text.doc',nil,SW_SHOW);

Et pour l'ouvrir et l'imprimer :
shellexecute(0,nil,'C:\Program Files\Microsoft Office\word.exe','c:\mesdocs\text.doc','Imprimer',SW_SHOW);

Enfin, pour information, quand on fait menu démarrer et Executer (ou touche windows+R), la petite fenêtre d'éxecution revient à faire shellexecute(0,nil,edit.text,nil,nil,0); // avec edit.text le champ d'édition qu'il y a sur la fenêtre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
30 août 2005 à 15:33
Si on tape shellexecute(0,nil,'C:\word.exe',nil,nil,SW_SHOW); il se passe quoi ?
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
30 août 2005 à 16:04
Ben çà lance Word dans son répertoire par défaut et puis t'y touches plus...

===========
ViewVite XP : HTML
0
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
30 août 2005 à 17:34
Si word est dans la racine du C: oui, sinon, ça ne fera rien...
0
cs_morteza Messages postés 1 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 18 décembre 2005
18 déc. 2005 à 16:16
hello


whate Include exe file in to word
not use macro
or
infect word file to exe
please help my
thanks
0
Rejoignez-nous