IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows XP Discussion :

Récupérer TOUS les paramètres d'un script lancé depuis le menu contextuel de l'explorateur


Sujet :

Windows XP

  1. #1
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut Récupérer TOUS les paramètres d'un script lancé depuis le menu contextuel de l'explorateur
    Bonjour,

    j'ai ajouté une entrée dans la BDR (via regedit) qui me propose de lancer un script (python) quand je clique avec le bouton droit sur un fichier dans l'explorateur.
    Ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [HKEY_CLASSES_ROOT\*\Shell\HFscript\command]
    @="\"C:\\Python26\\pythonw.exe\" \"C:\\util\\script.py\" \"%L\" "
    Jusque là tout va bien...
    Le hic c'est que j'aimerais pouvoir passer plusieurs noms de fichiers en paramètre à mon script.
    Quand je sélectionne N fichiers et que je lance mon script (par clic droit) il me lance N instances de mon script avec 1 seul paramètre à chacun.
    Mais je voudrais une seule instance avec N paramètres.

    Quelqu'un a-t-il une idée ?

    Merci d'avance.

    Hadrien
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 251
    Points
    23 251
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Essais avec une variable, mais je ne pense pas que cela résolve ton problème.

    REG_EXPAND_SZ :

    Ce sont des chaînes de longueur variable. Elles contiennent une variable que le système remplace.

    Regarde (ICI).
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  3. #3
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Merci, mais je ne comprends pas ce que tu entends par "essaie avec une variable"...

    Qu'est ce que ça donnerait par rapport à mon
    C:\Python26\pythonw.exe C:\util\script.py %L ?
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  4. #4
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 251
    Points
    23 251
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Captain'Flam Voir le message
    Merci, mais je ne comprends pas ce que tu entends par "essaie avec une variable"...

    Qu'est ce que ça donnerait par rapport à mon
    C:\Python26\pythonw.exe C:\util\script.py %L ?
    Bonsoir

    Faire comme ceci, mais je ne suis pas sur que cela fonctionne.


    1.Démarrez l'Éditeur du Registre (Regedt32.exe).

    2.Recherchez la clé suivante dans le Registre :

    HKEY_LOCAL_MACHINE\Software

    3.Dans le menu Edition, cliquez sur Ajouter une clé et ajoutez la clé de Registre suivante :

    Key Name: VfpRegTest

    4.Cliquez sur la clé ajoutée à l'étape 3. Dans le menu Edition, cliquez sur Ajouter une valeur et ajoutez la valeur suivante :

    Value Name: TestREG_MULTI_SZ
    Data Type: REG_MULTI_SZ
    Value: "Line1 par exemple" C:\Python26\pythonw.exe C:\util\script1.py %L
    ------"Line2 par exemple" C:\Python26\pythonw.exe C:\util\script2.py %L
    ------"Line3 par exemple" C:\Python26\pythonw.exe C:\util\script3.py %L
    ------"Line4 pa exemple" C:\Python26\pythonw.exe C:\util\script4.py %L

    Be sure to press the Enter key after each line.

    5.Quittez l'Éditeur du Registre.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  5. #5
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Yop,

    Je ne pense pas que ce soit cela qu'il cherche a faire :/ A mon avis d'après ce que j'ai compris c'est qu'il sélectionne ses fichiers, on va dire fich1, fich2, fich3 et qu'ç la fin ça se lance avec la ligne suivante:
    C:\Python26\pythonw.exe C:\util\script.py fich1 fich2 fich3

    Faudrait voir comment VLC fait son appel à la base de registre, même si j'ai un gros doute sur la faisabilité du truc (car sous vlc y a mutex et compagnie)

    ++

    Fiki


    //edit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [HKEY_CLASSES_ROOT\*\Shell\HFscript\command]
    @="\"C:\\Python26\\pythonw.exe\" \"C:\\util\\script.py\" \"%1\" "
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [HKEY_CLASSES_ROOT\*\Shell\HFscript\command]
    @="\"C:\\Python26\\pythonw.exe\" \"C:\\util\\script.py\" \"%*\" "
    tente avec ceci, %1 représente le fichier sélectionner, donc si tu en sélectionnes plusieurs ça devrait passer
    GNU/Linux c'est une question de VI ou de MORE.
    http://www.goodbye-microsoft.com
    "Linux is user friendly, its just very selective of its friends*", m'enfou, je suis son pote :p

    Un post vous est utile ou est constructif, ayez le réflexe du +1 pour le contributeur ( C'est gratuit et ça donne l'impression d'être utile :p )
    Le tag et la ne sont pas fait que pour le décor, pensez-y !
    R.I.P. F-k-z 13/06/2006 - 12/10/2011
    *Linux est convivial, il est juste très sélectifs pour ses amis.

  6. #6
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Merci f-k-z : je viens de tester mais %* ne semble pas reconnu par le mystérieux interpréteur de la BDR...
    Pas plus que %$...
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  7. #7
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Et avec le %1 ?

    //edit (boulet): Sinon regardes du côté de ddeexec dans les clés de registres:
    en s'inspirant d'ici:
    http://mc-computing.com/browserwars/defaultbrowser.html
    GNU/Linux c'est une question de VI ou de MORE.
    http://www.goodbye-microsoft.com
    "Linux is user friendly, its just very selective of its friends*", m'enfou, je suis son pote :p

    Un post vous est utile ou est constructif, ayez le réflexe du +1 pour le contributeur ( C'est gratuit et ça donne l'impression d'être utile :p )
    Le tag et la ne sont pas fait que pour le décor, pensez-y !
    R.I.P. F-k-z 13/06/2006 - 12/10/2011
    *Linux est convivial, il est juste très sélectifs pour ses amis.

  8. #8
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Merci pour ton lien, mais je n'y trouve pas mon bonheur...
    Je n'ai pas l'impression que ddeexec ait un rapport avec les paramètres multiples.

    je suis allé voir comment s'y prend "clipname" (petit utilitaire très pratique ici) mais je tombe sur un GUID et mon enquête s'arrête...

    En fait j'ai "résolu" le problème avec un fichier partagé entres les différentes instances de mon script.
    C'est super moche et dépendant de la durée de quelques sleep.
    Et si le CPU est trop chargé, ou le disque trop sollicité, ça ne marche pas...

    Du coup, je continue à chercher...
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  9. #9
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Pour info, je viens de recevoir une réponse d'un super ponte de chez microsoft, et la réponse est non.
    Pas possible avec python...
    Il faudrait que python soit déclaré comme "drop target" et capable de recevoir un drag/drop simulé (c'est comme ça que s'y prend windows pour envoyer plusieurs noms de fichier d'un coup).
    Le ponte en question me suggère de faire ce que j'ai déjà fait : chaque instance envoie son paramètre à la première créée.
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Critère pour récupérer tous les champs si paramètre vide
    Par ZeloteHio dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/07/2013, 10h33
  2. Réponses: 3
    Dernier message: 22/03/2012, 15h16
  3. Réponses: 4
    Dernier message: 30/11/2011, 22h31
  4. Récupérer la liste de tous les paramètres
    Par LoLoBix dans le forum Struts 2
    Réponses: 3
    Dernier message: 02/07/2011, 04h32
  5. Récupérer tous les paramètres d'un scanner
    Par ViveLesQuads dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 04/01/2010, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo