Question ShellExecute.

Signaler
Messages postés
116
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
25 septembre 2005
-
Messages postés
1
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
18 décembre 2005
-
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

Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
16
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
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

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.

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
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

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.

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

===========
ViewVite XP : HTML
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

Si word est dans la racine du C: oui, sinon, ça ne fera rien...
Messages postés
1
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
18 décembre 2005

hello


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