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

VB 6 et antérieur Discussion :

Dll inscrite en BDR ?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Par défaut Dll inscrite en BDR ?
    Bonjour à tous.

    Est-il possible de savoir si une dll a bien été enregistrée ?

    je m'explique :

    En gros, j'ai une dll qui n'est pas installée par défaut.
    Je l'inscrit avec Regsvr32.exe par le biais d'un Shell
    Cependant, je ne fais ce shell que si la dll n'existe pas "physiquement" dans un dossier specifique (mes utilisateurs ne sont pas admin, donc pas question de copier la dll dans system32) avant que je ne la sorte de mon fichier ressources.
    par contre, si l'inscription se passe mal, à la prochaine execution, la dll sera présente "physiquement" dans le dossier (puisque qu'il faut bien qu'elle y soit avant le Regsvr32) et l'inscription ne sera plus tentée.

    Sauf erreur de ma part (là, je peux sans problème et sans honte me planter lamentablement) toute dll possède un identifiant unique (le CLSID ???) inscrit en base de registre.

    Donc, ma question, si je ne fais pas d'erreur, sera :
    • Comment connaitre le CLSID (???) de cette dll (en l'occurence : DSOFile.dll)
    • Où retrouver, dans la BDR, cette info...


    A mon avis, ça serait bien plus sûr que tester uniquement la présence du fichier...

    Je ne suis pas très sûr d'avoir été super clair dans ma demande. N'hésitez pas à me demander des précisions si besoin.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    J'ai fait un petit tour sur et je crois avoir compris que les CLSID sont utilisés pour définir les objets COM.
    J'ai déjà ajouté des dll dans system32 de windows sans faire d'identification dans la base de registre et les applications qui en avaient besoin les ont utilisés, parce que de façon général ces appli regarde la présence du fichier dans le répertoire.
    Je pense qu'identifier une dll avec un CLSID ne servira que pour les utiliser comme des objets COM.
    Est ce ton besoin ?

    Après un petit tour chez mon ami (je te le conseille il est vraiment sympas), j'ai trouvé ce lien qui devrais t'interesser :
    http://www.developpez.net/forums/arc.../t-194779.html

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Par défaut
    Bonjour

    Merci pour cette réponse.

    Juste pour information, je suis également très lié à Google, mais...
    Je travaile dans une entreprise où, par défaut, on n'a pas d'accès Internet, sauf sur autorisation expresse du Président de la République...
    Donc, par défaur Google m'est interdit.
    Il m'a fallu batailler ferme pour accéder à la bible qu'est ce site, après moult arguments et preuve du besoin dans mon boulot...
    Bref, tout ça pour justifier que, parfois, mes questions peuvent paraitre saugrenues et je m'en excuse...

    Sorti de ça, j'ai consulté les liens (à mon domicile, puisque...) et même si je n'ai pas tout compris, ça m'a ouvert quelques pistes.

    Après recherches dans ma BDR, j'ai effectivement trouvé plusierus réferences à ma dll, avec un "ProgID" qui demble être unique.
    Il me reste à savoir si ce ProgID est le même quelque soit l'OS.

    Bref, et pour conclure, si ce ProgID est présent en BDR, ça prouve que la dll est correctement installée ??

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je suppose que oui, maintenant je ne sais pas si le prog ID est effacé de la base de registre par windows s'il trouve que la DLL a disparu (effacé à la main).

    Désolé pour mes sous entendus, mais je rencontre souvent des personnes qui ne font pas d'efforts de recherche et poste des questions ici espérants que l'on fasse le boulot à leur place. Je t'avais mis dans le même sac désolé .
    Je compatis à ta douleur, si je n'avais pas eu le net l'annee derniere pendant ma premiere periode de stage de mon contrat d'apprentissage je n'aurais pas réussi à le réaliser, il me manquait trop de connaissance, il a fallu que je m'autoforme.

    Bon courage et bonne continuation

  5. #5
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Par défaut
    Si Windows gérait correctement les clefs obsolètes, ça se saurait

    Pour info, j'ai fait un ch'ti bout de code qui me permet d'obtenir, à partir du ProgID, le CLSID, qui lui même, permet d'obtenir le chemin "physique" de la DLL.
    Avec ça, je peux vérifier que la DLL est bien inscrite d'une part, et d'autre part, qu'elle est toujours présente physiquement.

    Pas de problèmes pour les "sous-entendus"... Je n'ai pas encore trouvé le code pour faire une boule de cristal...

    Merci pour le coup de main et d'avoir passé du temps sur mon problème !

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Ça se fait avec le TypeLibInfo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                Dim clsTLI As Object, objTLI As Object
                Set clsTLI = CreateObject("TLI.TLIApplication")
                Set objTLI = clsTLI.TypeLibInfoFromFile(FileName)
                    objTLI.Register
                Set objTLI = Nothing
                Set clsTLI = Nothing

  7. #7
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Octobre 2004
    Messages : 20
    Par défaut
    Bonjour.

    Merci pour l'info.

    Si j'ai bien compris, ça a le même effet qu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "Regsvr32 DSOFile.dll"
    ?

Discussions similaires

  1. [CR] Infos sur l'utilisation de dll
    Par step dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 09/08/2002, 11h35
  2. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07
  3. Débug de DLL
    Par Bayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/07/2002, 15h08
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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