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

Langage Delphi Discussion :

Utilisation d'un Thread dans une DLL


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Utilisation d'un Thread dans une DLL
    Bonjour à tous,

    J'ai besoin de surveiller l'entrée de fichiers images dans un répertoire.
    Dans un exécutable j'utilise un Thread de surveillance en variable générale créé à la création de la fiche principale et libéré à sa destruction. Cela fonctionne.

    Ma question est : peut-on utiliser ce type de thread dans une DLL sachant que :

    1) il serait créé par une fonction d'initialisation applelée par l'appication
    2) il resterait actif en mémoire jusqu'à sa destruction par une autre fonction appelée par l'application
    3) tant qu'il est actif il doit automatiquement déclencher une action à l'introduction d'un fichier dans le répertoire survéillé

    C'est surtout sur ce dernier point que je ne vois pas très bien comment la DLL peut intervenir indépendament d'un appel par l'application

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

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    Le mieux est de hooker le Shell pour être notifié des modifications sur le répertoire.

    Regarde ici

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut
    Que veut dire Hooker le shell ?
    J'avoue ne pas avoir trouvé dans le lien "ici"

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    Hooker veut dire s'intercaller entre l' OS et les applications et donc recevoir des informations avant qu'elles ne leurs arrivent.

    Il est vrai que dans ce cas, je devrais plutôt utiliser les termes être notifier. Mais le principe est le même, soit inclure ta propre pocédure dans la chaîne de notification.

    Sans le savoir, tu as déjà sur ton système (à l'installation de Delphi) un package qui inclus un tel composant. Cherche et installe simplement le paquet vclshlctrls.dpk. Tu retrouveras dans ta palette (sous Samples) les composants invoqués sur la première page du lien que je t'ai donné. Mais ce composant (ShellChangeNotifier) est assez basique et ne récupère que certaines informations.

    A la dernière page par contre, ils te proposent un composant beaucoup plus évolué qui te renvoi toutes les informations possibles et imaginables sur l'activité du répertoire

    Il n'y a ainsi plus besoin de boucle (ou thread) pour détecter les modifications, elles te sont envoyées comme par magie .

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok et merci
    Ok,

    C'est très intéressant ! Je vais m'y mettre.

    Mille merci

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut installation de shellctrls
    Bonjour,

    J'ai bien trouvé le pacquet vclshlctrls.dpk mais quand je veux l'installer Delphi déclare que le fichier package est incorrect !

    En fait Delphi recherche des pacquets *.dpl. Comment passer de dpk à dpl ?

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    C'est que le paquet n'est pas compilé.
    Ouvre-le dans Delphi, compiler, installer.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut pas moyen de le passer en bpl
    Si je le compile il me demande une application hote ???

Discussions similaires

  1. [Débutant] Utiliser les fonctions contenues dans une DLL écrite en VB.NET
    Par vg-matrix dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/11/2012, 23h35
  2. Conseil sur les thread dans une dll
    Par ksoft dans le forum C
    Réponses: 2
    Dernier message: 30/03/2009, 15h12
  3. Utilisation d'un activex dans une dll mfc
    Par regdobey dans le forum MFC
    Réponses: 2
    Dernier message: 20/11/2008, 13h19
  4. Problème de terminaison de thread dans une DLL
    Par johjoh dans le forum Langage
    Réponses: 4
    Dernier message: 25/09/2008, 18h29
  5. [COM] utiliser la librairie standard dans une dll COM
    Par kacedda dans le forum Visual C++
    Réponses: 5
    Dernier message: 13/03/2008, 14h57

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