Intercepter une DLL manquante [Résolu]

Signaler
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
-
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
-
Bonjour,
Je voudrais pouvoir lire des pdf en utilisant AcroPDF.dll
Le problème est que si la dll n'existe pas le programme va se planter
J'ai vu qu'il est possible d'utiliser Application.ThreadException en .net
Y a-t-il un équivalent en VB6 ?
Sinon connaissez-vous un autre moyen d'éviter que le programme se plante ?
Merci d'avance

7 réponses

Messages postés
191
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
21 octobre 2020
5
Salut,
Tu dois diffuser la DLL dans le répertoire de l'executable.
Il n'y a pas trop le choix.
Mais, tu peux aussi placer un test de présence de fichier si tu connais le path complet.
La mise à 1 d'un trigger booléen donnera accès à la fonction DLL, car l'erreur n'apparait que lorsque l'on fait un accès à la fonction dans la DLL.
Tu peux aussi chercher la présence de l'installation du plug-in Adobe dans les clefs de registre configurés (CLSID), si le path n'est pas fixe.

Mais, l'appel des DLL est très rustique… soit dans un répertoire par défaut sous Windows, soit dans le répertoire de l'application.

Il existe des jockers système pour localiser les DLL, mais il est préférable de ne pas localiser ces fichiers, pour tester les répertoires systèmes avec des appellations différentes de systèmes en systèmes… sur XP/7/8 (SYSTEM32) et sur le 10 (syswow64 pour le mode 64bits)...
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
2
Merci pour ta réponse,
Je ne peux pas vérifier la présence de la DLL car si elle n'existe pas le programme se plante avant même de démarrer.
J'abandonne cette idée de lire des PDF : je peux facilement l'afficher dans une fenêtre mais pour y accéder c'est verrouillé par Adobe.
Messages postés
191
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
21 octobre 2020
5
Salut,
Ha !, je comprends mieux.
Tu intègres ta classe à la compilation, et le lancement ne peux se connecter à celle-ci.
C'est le gros piège du VB, qui peut connecter les liens d'add-on installés sur une machine, sans faire le portage des applications esclaves.
Pour une config, et utilisation personnelle, pas de problèmes… mais, c'est fortement déconseillé de distribuer une application à base de classes Offices, Accès... (ou autres…), et tout et tout, car elle nécessite l'installation de logiciels payants et ayant des plugins avec des restrictions d'utilisation.

Donc, à éviter.
Il faut prévoir le bannissement des "contrôls" cools et pratiques qui ne fonctionneront que sur la machine du programmeur !

Il faut faire simple, sans OCX exotiques, et maîtriser la simplicité des fonctions de base des OCXs de base.
Plus le projet a d'esclaves, plus l'application aura des problèmes de compatibilités systèmes, et plus l'application sera instable, avec des bogues importés impossibles à déboguer.

Il est préférable, dans la mesure du possible, d'utiliser des DLL ou OCXs intégrés aux sources ou relocalisables dans le répertoire de l'application.

Il faut savoir que de nombreux OCX ou DLL sont optimisés sous des systèmes d'exploitation 32bits d'ancienne génération (Win95/98,XP), et ne seront peut-être plus compatibles avec les nouvelles machines.
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
2
C'est bien la raison pour laquelle j'abandonne l'idée du PDF.
Messages postés
191
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
21 octobre 2020
5
Salut Hervé,

Je me troupe peut-être, mais ne peut-on pas faire un SHELLEXEC sur le PDF, pour ouvrir le plug-in internet qui va s'ouvrir avec le lecteur PDF installé par défaut…

J'ai pas essayé, mais je me souvient avoir vu ça sur un fichier texte… sans le "bloc-note"...

Enfin, j'ai peut-être rêvé.
Messages postés
191
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
21 octobre 2020
5
ça marche chez moi...
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


Private Sub Command1_Click()
    ShellExecute 0, "open", App.Path & "/test.pdf", vbNullString, vbNullString, 0
End Sub
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
2
Shellexecute permet en effet de lire le pdf avec mes yeux
mais ce que je voudrais faire c'est le lire avec VB6 pour décoder automatiquement le contenu.

J'ai un programme qui traite les résultats d'une analyse labo fournis en pdf
actuellement on doit retaper toutes les valeurs dans la fenêtre du logiciel
ce que je voudrais faire est de remplir les textboxes automatiquement à partir du pdf.
Messages postés
191
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
21 octobre 2020
5
Avec un copier/coller ?
Regarde ce que tu récupères avec une selection complète.
Les balises comme les espaces, les caractères spéciaux…
Edite les PDF, et regarde sa structure en mode texte.
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
2
Les PDF que je reçois des labos sont verrouillés : je ne peux ni les éditer, ni sélectionner le texte et donc pas le copier.
Comme déjà dit j'abandonne l'idée de lire un pdf.
Messages postés
191
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
21 octobre 2020
5
Salut,
Si tu as une centaine d'infos, tu peux faire des captures écran par colonne, en basse résolution… puis tu fais un OCR, les chiffres passent assez bien…
Mais, pas sûr que ça soit plus rapide pour l'utilisateur avec un feeding avec un coller par ligne/colonne.
On mets un stagiaire sur le clavier numérique, et ça fait la blague…
;)
Messages postés
832
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
24 octobre 2020
2
Bonjour,
Les données labo sont disponibles sous format pdf et sont aussi consultables via une page web.
J'ai abandonné l'idée de lire le pdf, un copier/coller de la page web fonctionne très bien.
Je cherche maintenant à automatiser ce copier/coller pour que le programme fasse la même chose sur base de l'URL de cette page mais ça ne fonctionne pas bien.
J'ai donc ouvert un nouveau sujet ici https://codes-sources.commentcamarche.net/forum/affich-10099325-recuperer-le-contenu-d-une-page-web#p10099379