OpenDialog, shellexecute et Word [Résolu]

Messages postés
6
Date d'inscription
mardi 28 mars 2006
Dernière intervention
26 juillet 2007
- 28 mars 2006 à 22:14 - Dernière réponse :
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 31 mars 2006 à 20:05
Salut, je suis un peu nouveau en programmation Delphi et mon problème est le suivant:

un bouton ouvre une opendialog puis un shellexecute ouvre word qui doit
normalement ouvrir le fichier selectionné dans l'opendialog.

Seulement word me dit ne pas pouvoir ouvrir ce fichier (alors qu'il s'ouvre très bien depuis word lui-même)

voici le code que j'utilise :

ShellExecute(0,'open', 'winword.exe',
pchar(opendialog1.filename),nil, SW_normal);



est-ce un problème word ou delphi ( ou du programmeur !!) ??

merci d'avance
Jeff
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 30 mars 2006 à 01:17
3
Merci
Les guillemets sont la pour faire passer la "pilule"


Non trêve de plaisanteries si tu as un nom de fichier long (et il y a 9 chances sur 10 pour que ce soit le cas) Ex. : C:\Mon répertoire\Mes fichiers\Mon fichier texte.doc ShellExecute ne reconnaît pas les noms longs, il est resté sur le format 8.3 (Dos Win3.1 Win95) et donc deux solutions sont possibles, soit tu convertis le tout en format 8.3 ce qui donne un truc du genre : C:\Monrep~1\MesFic~1\MonFic~1.doc où tu mets le tout entre guillemets ce qui a mon avis, est plus simple et plus rapide.

Et désolé pour la bourde, effectivement il faut mettre les guillemets dans l'appel à PChar et non comme je l'avais écris avant, en dehors, ce qui est logique mais je vois que tu as corrigé cette erreur tout seul.

PS := au cas ou le format 8.3 ca veut dire 8 caractères maximum pour le nom et 3 caractères maximum pour l'éxtension.

Voilà tout est dit enfin je crois

@+
Cirec

Merci Cirec 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 Cirec
Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 31 mars 2006 à 20:05
3
Merci
Pourrais-tu juste cliquer sur Réponse Acceptée Stp.
Merci
@+
Cirec

Merci Cirec 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 Cirec
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Dernière intervention
26 juillet 2007
- 28 mars 2006 à 22:54
0
Merci
Ca y est !!

Je crois que j'ai trouvé ! Voilà le code que j'utilise :



ShellExecute(0,'open',pchar(opendialog1.FileName),nil ,nil, SW_normal);



et là, ça marche . ( je sais pas pourquoi, mais bon ! )

Désolé pour le dérangement et surement à très bientôt .

Jeff
Commenter la réponse de cs_jeffmo
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 29 mars 2006 à 03:46
0
Merci
Salut,
parce que l'extension est connue du système et donc Windows l'ouvre avec le logiciel approprié.

Si tu lui donne un fichier avec une extension .TXT il l'ouvrira avec le Bloc Notes.

Essaye voir comme ceci :

ShellExecute(0,'open', 'winword.exe', '"' + pchar(opendialog1.filename) + '"',nil, SW_normal);

@+
Cirec
Commenter la réponse de Cirec
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Dernière intervention
26 juillet 2007
- 29 mars 2006 à 21:38
0
Merci
Salut,

j'ai eu une incompatibilité String et Pchar, alors j'ai modifié comme ça:

ShellExecute(0,'open', 'winword.exe', pchar('"' + opendialog1.filename + '"'),nil, SW_normal)

et la, ça marche impec !

Donc j'ai bien compris que la commande winword.exe force l'application à utiliser word, et c'est justement ce que je voulais, alors merci du coup de pouce.
Par contre, je ne vois pas à quoi servent les '"' + qui entourent l'opendialog1.filename, si je les met pas, ça marche pas !

Encore merci
A+
Jeff
Commenter la réponse de cs_jeffmo
Messages postés
6
Date d'inscription
mardi 28 mars 2006
Dernière intervention
26 juillet 2007
- 30 mars 2006 à 21:48
0
Merci
Je vois que tu connais le sujet sur le bout des doigts.

Merci beaucoup de ces précieux renseignements, bien expliqués de manière très claire.



A+


Jeff
Commenter la réponse de cs_jeffmo

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.