Parametre de ShellExecute

Résolu
armetiz Messages postés 25 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 6 juin 2007 - 28 oct. 2005 à 13:56
armetiz Messages postés 25 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 6 juin 2007 - 4 nov. 2005 à 13:43
J'essai d'utiliser la commade ShellExecute avec divers parametre... mais, a chaque fois, seul la fenetre MS-Dos s'ouvre, mais, aucune action n'est presente..

J'ai fouillé le forum dans tous les sens.. et, se que je trouve etrange, c'est que les commandes qui marche chez d'autre, ba.. marche pas chez moi :s

par exemple :
ShellExecute(0, nil, 'CMD', PChar('dir c:/ > c:/list.txt'), nil, SW_SHOWNORMAL);

Ca me lance la fenetre ms-dos, mais.. rien de plus derriere.. j'ai essaier dautre truc, mais rien de concluant..merci à vous si vous aviez un reponse.
A voir également:

27 réponses

Utilisateur anonyme
28 oct. 2005 à 15:10
Salut

Copier coller d'un topic précédent :

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

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.

Message de barbichette

C'est la seconde fois que tu poses la meme question et je t'avais deja répondu, il me semble avec l'adresse du topic.

Bon coding
2
Rejoignez-nous