[..] Fonction (Ouvrir avec)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
eric
Niveau 5
Niveau 5
Messages : 177
Enregistré le : sam. 21 mars 2009 17:57
Localisation : Bretagne
Status : Hors ligne

[..] Fonction (Ouvrir avec)

#1

Message par eric »

Bonjour,

Existe t il une fonction ou une méthode qui permetrais de faire comme sous Windows quand on clique avec le bouton droit sur un fichier et que l'on choisit "Ouvrir avec".

En gros pouvoir faire :

Exécuter ("nom du fichier à ouvrir","fichier exe de l'application à utiliser")

En espérant avoir été clair.

Merci

Eric
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#2

Message par Tlem »

Votre question n'est pas entièrement claire, cela-dit si vous cherchez à rajouter une option dans le menu du clic droit sur un fichier, c'est du coté de la base de registre de Windows qu'il faut chercher.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#3

Message par timmalos »

Voulez vous modifier le menu contextuel windows ou faire un combo dans une Gui Autoit?
edit :Tlem, Tu comprend ca peut plus durer maintenant. Ta encore bouffé tous les choco suisse. TU POUSSE LE BOUCHON UN PEU TROP LOIN TLEM :lol:
eric
Niveau 5
Niveau 5
Messages : 177
Enregistré le : sam. 21 mars 2009 17:57
Localisation : Bretagne
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#4

Message par eric »

Bon je vais essayer d'imager un peu.

Je voudrais faire 2 boutons:

Le premier ouvrirait un fichier txt avec notepad.exe

Le deuxième ouvrirait ce même fichier txt mais avec Wordpad.exe

C'est pourquoi je voudrais pouvoir indiquer avec quel programme ouvrir ce fichier txt.

D'où le:

Exécuter ("nom du fichier à ouvrir","fichier exe de l'application à utiliser")

En espérant avoir été plus clair.

Merci

Eric
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#5

Message par timmalos »

Voilà Un script que jai repris d'un ancien exemple à moi.

Vous selectionnez un fichier dans la liste, tous les fichiers .au3, .vbs, .txt sont affichés à la base.

Alors le fichier est ouvert et vous avez un apercu. Pour l'ouvrir avec vos éditeurs, vous cliquez sur le gros bouton et selectionnez l'editeur.


Regardez la source pour changer mais normalement c'est bon.
Fichiers joints
script2.au3
(13.63 Kio) Téléchargé 276 fois
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#6

Message par Tlem »

Je me tâte à donner un complément d'information sans pour autant froisser notre ami Tim. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#7

Message par timmalos »

Va y Tlem ;) Je t'accorde la permission pour cette fois. :P
eric
Niveau 5
Niveau 5
Messages : 177
Enregistré le : sam. 21 mars 2009 17:57
Localisation : Bretagne
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#8

Message par eric »

Merci timmalos pour ce script.

Mais je vais être un peu embêtant.

Pour ouvrir le fichier vous utilisez la fonction Shellexecute.

Le soucis de cette fonction c'est qu'à chaque fois qu'on l'utilise elle ouvre une nouvelle instance du programme.

J'ai mal choisis mon exemple au dessus mais comme je n'ai pas encore de code mais que je réfléchis à la manière de faire, je suis un peu imprécis, désolé.

Notepad ou Worpad ne peuvent ouvrir qu'un fichier à la fois.

Mais si je prend Word ou Notepad ou autre qui gèrent l'ouverture de plusieurs fichiers en même temps et que j'ai trois bouton par exemple qui doivent ouvrir un fichier avec Word, si j'utilise Shellexecute j'aurais 3 Word d'ouvert.

Alors que j'aurais aimé avoir 1 Word d'ouvert avec les 3 fichiers dedant.

C'est pourquoi j'avais pris l'exemple de la fonction "Ouvrir avec" de Windows qui si le programme est déjà ouvert ne lance pas un autre mais ouvre le fichier avec celui qui est déjà ouvert.

Merci

Eric
Modifié en dernier par eric le mar. 01 sept. 2009 13:27, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#9

Message par timmalos »

Aucune idée dans ce cas, faut voir dans le regedit si Ouvrir Avec montre comment il ouvre les fichiers. Il suffit de trouver la ligne de commande à lancer, mais là je peux pas tester.
Après il suffira de faire un Run Avec @ComSpec pour lancer la commande.
eric
Niveau 5
Niveau 5
Messages : 177
Enregistré le : sam. 21 mars 2009 17:57
Localisation : Bretagne
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#10

Message par eric »

Aie ça se complique :o
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#11

Message par Tlem »

Je ne comprend pas tout ...

Si je sélectionne trois fichiers .doc et que je fait ouvrir, j'ai bien les trois documents qui apparaisse dans la barre des tâches, mais pas trois instances de Word (le gestionnaire de tâche me le confirme) !!!

Si je fait trois ShellExecute avec les trois documents, je me retrouve bien dans le même cas. :shock:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
eric
Niveau 5
Niveau 5
Messages : 177
Enregistré le : sam. 21 mars 2009 17:57
Localisation : Bretagne
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#12

Message par eric »

Tlem a écrit :Je ne comprend pas tout ...

Si je sélectionne trois fichiers .doc et que je fait ouvrir, j'ai bien les trois documents qui apparaisse dans la barre des tâches, mais pas trois instances de Word (le gestionnaire de tâche me le confirme) !!!

Si je fait trois ShellExecute avec les trois documents, je me retrouve bien dans le même cas.
Effectivement cela met 3 boutons dans la barre de tâches mais qu'un seul processus Winword.exe

Si cela semble être le cas pour beaucoup de logiciels ce n'est pas valable pour tous.

Par exemple pour le logiciel AutoCAD LT (que j'utilise aussi) il va y avoir dans le même cas 2 processus acadlt.exe avec ShellExecute mais seulement 1 processus avec "Ouvrir avec"

Alors après c'est peut être propore à AutoCAD mais je pense qu'il ne doit pas être le seul à réagir comme ça.

En tout cas merci de vous casser la tête pour m'aider.

Eric
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction (Ouvrir avec)

#13

Message par Tlem »

Certes, mais les données du problème reste les même.

Si avec Windows vous faites trois fois 'Ouvrir Avec', vous aurez alors trois fois votre processus.
Si vous sélectionnez trois fichiers et que vous faites 'Ouvrir Avec', alors vraisemblablement vous n'aurez qu'un seul processus (d'après ce que vous dites).

Dans ce cas faites de même avec ShellExecute.
Soit :

Code : Tout sélectionner

ShellExecute('Autocad.exe', 'Fichier1.cad Fichier2.cad Fichier3.cad')
Bon j'ai simplifié la chose, mais il faudra évidement donné le chemin complet du programme et des fichiers cad.
Utilisez des variables et faites un truc dans ce genre :

Code : Tout sélectionner

ShellExecute($CheminExe & '\Autocad.exe', '"' & $Fichier1 &  $Fichier2 & $Fichier3 & '"')
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre