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

 Delphi Discussion :

Comment apeler une application externe à Delphi et utiliser ses fonctionnalités


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 34
    Points : 37
    Points
    37
    Par défaut Comment apeler une application externe à Delphi et utiliser ses fonctionnalités
    {
    OS: Vista 32b
    Delphi 7
    }

    bonjour,

    Je butte depuis quelques jours sur le problème suivant:

    J'ai installé un petit plugin pour mon Windows Explorer qui me permet - avec un clic droit sur un nom de fichier (avec un format et une extension spécifique, normalement non reconnue par Windows) - de pouvoir au travers d'un popup - visualiser / lister le contenu de l'archive...

    Ce plugin explorer voit l'archive en question comme un répertoire Windows et bien entendu liste / affiche son contenu...

    En cliquant droit sur le nom d'un fichier quelconque composant cette archive, on affiche un popup qui offre les fonctions suivantes:

    - Couper, Copier, Supprimer, Renommer et enfin obtenir les propriétés du fichier sélectionné...

    Je voudrais pouvoir effectuer ces opérations à partir d'une application Delphi, bref automatiser le processus de façon à ne pas y passer la semaine (voire le mois)
    pour récupérer une petite centaine de fichiers dans chaque archive que j'ai.... et des archives j'en ai actuellement 714 !!! Voyez ce que je veux dire... Je laisse les matheux faire le calcul

    Jusqu'ici, je réussi (à traversune petite application Delphi et avec un appel API du type Explorer.exe "nomarchive.zdf") à appeler ce plugin qui m'affiche donc le contenu de l'archive dont le nom a été passé en argument à explorer.exe.

    Maintenant j'aimerais pouvoir aller plus loin et appeler ce menu contextuel pour extraire (donc copier) le / les fichier(s) que je convoite... Et là: rideau!

    Je ne sais absolument pas comment faire pour simuler / effectuer les actions:

    - clic droit sur nom fichier convoité --> ouverture menu contextuel --> choix option désirée (par exemple copier)! et la suite (choix dossier destination, confirmation de l'action).

    Comme je suis quasi certain que certains parmi vous ont déjà rencontré ce type de challenge (et comme mon savoir en la matière a aussi ses limites), je viens donc
    demander quelle est la meilleure façon de procéder afin de pouvoir effectuer ces opérations soit avec le ShellAPI, soit avec autre chose ?
    J'ai pensé un moment de passer par le gestionnaire de processus pour essayer de piloter ce plugin mais là encore je vois pas du tout comment faire. Surtout que j'ignore tout de ce processus (je sais même pas son nom).

    Voilà l'énoncé du problème. Si je n'ai pas été assez clair et précis, n'hésitez pas à me demander d'autres informations.

    Bonne continuation et A+++

    PS: en me relisant je viens de voir que j'ai dit une belle conne... Bien entendu on connait le processus en question qu'il faut piloter puisque c'est l'explorer Windows... Je cours me cacher dans le coin...

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Pour utiliser les liens du Shell (voir DDE et autre du genre)
    tu vas être bloquer à l'Open
    Après si la fenêtre est une fenêtre du module et non de Explorer, faut bidouiller avec du FindWindow !

    Faut voir cet outil de compression possède une ligne de commande
    Que ce soit ZIP, SevenZip, RAR, ... ils ont tous de la ligne de commande pour compresser et décompresser !

    Faut voir si cela installé un ActiveX au passage !

    sinon ta question aurait pu être bien plus courte :

    Comment on intègre le plugin "dont tu ne veux pas donner le nom" qui lit les archives ZDF

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 34
    Points : 37
    Points
    37
    Par défaut
    Salut ShaiLeTroll,

    Décidément tu es toujours sur le pont toi

    Allez on commence avec:

    ...le plugin "dont tu ne veux pas donner le nom"
    Pas parce que c'est un secret d'état mais parce que je ne pensais pas la chose utile. Il s'agit de adfview (qui est un plugin qui permet aux vieux collectionneurs de vieux jeux Amiga, Atari et consors comme moi) de lire, archiver, manager, etc. des images disks. (Si tu veux avoir une petite idée du bignou, on le trouve ici par exemple: http://www.viksoe.dk/adfview/

    Faut voir cet outil de compression possède une ligne de commande
    Apparement non car ce n'est pas un outil de compression comme on l'entend pour Zip, Rar, etc. Dnc pas de ligne de commande... Je suppose (car il lui faut bien un exécutable pour fonctionner, qu'il il y a eu une dll installée dans le répertoire system32 de Windows car le shell ne crée pas de répertoire nouveau à son installation, aucune modification remarquée non plus dans \users\documents\ ou AppData, etc.

    Mais je vais vérifier mieux la chose en le désinstallant avec du Revo uninstaller, comme ça j'aurais la liste de ce que le bignou m'a ajouté.

    En attendant, je continue à investiguer.

    A+++

    PS: bon y'avais besoin d'aller chercher bien loin, j'ai donc la liste de ce que ce machin installe sur le PC hote:

    une dll spécifique à l'OS de la machine hote (32 ou 64b) un fichier *.inf le reste est je pense sans importance (fichier style: *.cnt, *.hlp, *.bbk).

    Re,

    Inutile de vous casser la tête plus longtemps, je pense pouvoir arriver à des résultats plus que satisfaisants en utilisant AutoIt. Donc problème résolu.

    A+++

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

Discussions similaires

  1. [Débutant] aide: comment manipuler une application externe en mode invisible?
    Par forzacodm dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 23/01/2013, 00h19
  2. Comment inclure une application externe ?
    Par Gavroche7 dans le forum Débuter
    Réponses: 16
    Dernier message: 22/12/2007, 06h54
  3. Comment démarrer une application externe en mode réduit ?
    Par okparanoid dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 26/11/2007, 20h33
  4. [VB.NET] Comment lancer une application externe dans ma Form
    Par afdmats dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/10/2006, 15h27
  5. Réponses: 0
    Dernier message: 11/05/2006, 08h19

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