Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1425 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vb6] probleme avec un commondialog

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vb6] probleme avec un commondialog

n°469189
fils_de_la​_lumiere
Posté le 27-07-2003 à 20:52:20  profilanswer
 

j'utilise le composant common dialog (COMDLG32.OCX) pour faire selectionner à l'utilisateur des icones sur son disque dur (la fenetre parcourir qu'on voit partout koi), le problème c'est que certaines personne me dise avoir se message "erreur système &h800700 le module spécifié est introuvable" lors de l'ouverture d'une feuille ou se trouve un common dialog. Je leur est donc envoyé une version de mon programme sans common dialog pour tester et la ca marche.
 
Qq1 peut t'il me dire de koi cela peut t'il venir et ya t'il moyen de se passer de l'ocx pour faire ce que je veut faire (je l'ai deja fait pour la selection d'un rep par ex)
 
merci bocoup car la je suis bloqué :jap:

mood
Publicité
Posté le 27-07-2003 à 20:52:20  profilanswer
 

n°469311
fils_de_la​_lumiere
Posté le 27-07-2003 à 23:09:13  profilanswer
 

bon la j'ai fait plus simple, j'ai  
 
- réinstallé vb6
- créé un nouveau projet
- inséré un common dialog sur la form vide
- compilé et filé à une personne chez qui ca ne fonctionne pas
 
et il a l'erreur du module introuvable. alors ma question est que doit faire cet personne pour que se programme fonctionne? :jap:

n°469380
fils_de_la​_lumiere
Posté le 28-07-2003 à 03:43:13  profilanswer
 

bon je simplifie encore :
 
comment lorsqu'un composant n'a pas pu être trouvé dans une form, le programme ne se ferme t'il pas, une sorte de on error resume next pour la form...
 
 :jap:

n°469397
cvb
Posté le 28-07-2003 à 08:45:46  profilanswer
 

C'est pas que la form, mais le programme compilé, que tu dois lui envoyer. Tu joins à ça le fichier *.ocx qui mets dans le dossier système ou à la racine de l'exe ! Et là, sa fonctionne !

n°470069
fils_de_la​_lumiere
Posté le 28-07-2003 à 18:01:06  profilanswer
 

euh non je lui é filé comdlg32.ocx dans le rep de l'exe mais erreur quand meme à l'ouverture!

n°470096
fils_de_la​_lumiere
Posté le 28-07-2003 à 18:14:28  profilanswer
 

voila l'erreur qui apparait meme si le gars a mi comdlg32.ocx dans le rep de l'exe avec seulement un common dialog dans la form
 
http://kabee.free.fr/contacts_space/all/hfr/err.JPG

n°470105
cvb
Posté le 28-07-2003 à 18:17:33  profilanswer
 

fils_de_la_lumiere a écrit :

voila l'erreur qui apparait meme si le gars a mi comdlg32.ocx dans le rep de l'exe avec seulement un common dialog dans la form
 
http://kabee.free.fr/contacts_space/all/hfr/err.JPG

je sais pas car chez moi sa marche chaque fois...

n°470108
gogoprog
/* - */
Posté le 28-07-2003 à 18:17:54  profilanswer
 

c peut-etre son windows tout "relooké" ki cause probleme

n°470116
fils_de_la​_lumiere
Posté le 28-07-2003 à 18:23:33  profilanswer
 

?? ba nan stun simple theme, nan je vient de trouver il falait en fait que le gars registre son ocx
 
regsvr32 comdlg32.ocx
 
mais le bleme c que je voit pas comment dire a tout les gars qui on ce bleme avec mon prog de faire ca...

n°470120
drasche
Posté le 28-07-2003 à 18:25:50  profilanswer
 

gogoprog a écrit :

c peut-etre son windows tout "relooké" ki cause probleme


rien à voir, d'ailleurs VB ignore les thèmes, seule la barre de titre et les bordures seront relookées :o

mood
Publicité
Posté le 28-07-2003 à 18:25:50  profilanswer
 

n°470152
fils_de_la​_lumiere
Posté le 28-07-2003 à 19:02:39  profilanswer
 

y'a t'il une routine en vb pour verifier si un ocx est registré et si ce n'est pas le cas le faire tout ca dans le programme lui meme?

n°470158
drasche
Posté le 28-07-2003 à 19:27:40  profilanswer
 

ça existe oui, j'en ai quelques unes au boulot mais je peux déjà te dire que sur base du type de l'objet, tu peux obtenir le CLSID avec la fonction CLSIDFromProgID de l'API Win32.
 
En général, pour trouver des exemples, il suffit de prendre google, de lui dire "vb6 CLSIDFromProgID" (dans le cas présent), et tu vas trouver ton bonheur assez rapidement.
 
Je te suggère d'aller directement ici si tu n'as pas peur de l'anglais, ce type a des tonnes d'exemples d'utilisation de l'API Win32 et en cette matière, je le prends comme référence ;)
 
Une fois le CLSID trouvé, tu peux utiliser une autre fonction pour retrouver le path de l'exécutable, mais je ne pourrai te dire son nom que demain.
 
Et pour info, le nom logique du composant que tu cherches est "MSComDlg.CommonDialog" ;)

n°470209
fils_de_la​_lumiere
Posté le 28-07-2003 à 20:44:20  profilanswer
 

drasche a écrit :

ça existe oui, j'en ai quelques unes au boulot mais je peux déjà te dire que sur base du type de l'objet, tu peux obtenir le CLSID avec la fonction CLSIDFromProgID de l'API Win32.
 
En général, pour trouver des exemples, il suffit de prendre google, de lui dire "vb6 CLSIDFromProgID" (dans le cas présent), et tu vas trouver ton bonheur assez rapidement.
 
Je te suggère d'aller directement ici si tu n'as pas peur de l'anglais, ce type a des tonnes d'exemples d'utilisation de l'API Win32 et en cette matière, je le prends comme référence ;)
 
Une fois le CLSID trouvé, tu peux utiliser une autre fonction pour retrouver le path de l'exécutable, mais je ne pourrai te dire son nom que demain.
 
Et pour info, le nom logique du composant que tu cherches est "MSComDlg.CommonDialog" ;)


 
humm.. spoor faire koi ca? j'ai pas tout compris dsl :sweat:

n°470221
drasche
Posté le 28-07-2003 à 21:12:08  profilanswer
 

bon d'abord ya le type de contrôle que tu utilises, dans le cas présent, il s'agit de MSComDlg.CommonDialog.
 
MSComDlg est le nom logique de la librairie, et CommonDialog est le nom logique du contrôle. C'est le paramètre passé à la fonction dont j'ai parlé.
 
Ensuite, il y a le fameux CLSID, un nombre 128 bits qui identifie de manière unique un composant COM/ActiveX, comme par exemple cette fameuse boîte de dialogue, ou encore n'importe quel contrôle ou classe utilisée par VB.  D'ailleurs VB parle couramment l'ActiveX, ça tombe très bien, mais il se garde de nous montrer tout ce qui se cache derrière.
 
Pour l'exemple, le CLSID du CommonDialog chez moi ressemble à ceci: {F9043C85-F6F2-101A-A3C9-08002B2F49FB}
 
Ensuite, le CLSID lui-même doit permettre de retrouver le fichier exécutable (DLL, OCX ou EXE) qui permet l'utilisation de ce composant.  C'est cette seconde fonction dont j'ai oublié le nom qui doit jouer ce rôle.
 
Je peux poster du code qui fait ça demain si tu veux.

n°470279
fils_de_la​_lumiere
Posté le 28-07-2003 à 22:54:31  profilanswer
 

merci pour tes explications c'est trés clair :)  
 
de mon coté j'ai trouvé la meilleur des solutions a mon gout
 
mon probleme était:
 
si qq1 ouvre une form ou il y a un common dialog, ocx donc non registré chez lui: plantage
 
et j'ai trouvé ce ptit bout de code sympa qu'utilise regsvr32.exe, il regsitre a chaque ouverture du prog les ocx nécéssaire au fonctionnement.
 

Code :
  1. Private Declare Function registrerMonOcx Lib "COMDLG32.OCX" Alias _ "DllRegisterServer"


 
aprés, un ptit:
 
     

Code :
  1. 'Je defini le rep comme celui de mon prog et non celui du rep system, afin de ne pas registrer l'ocx du system mais celui qui est dans le rep du prog
  2. ChDrive Mid(App.Path, 1, 2)
  3. ChDir App.Path
  4. registrerMonOcx


 
et ca marche :)


Message édité par fils_de_la_lumiere le 28-07-2003 à 22:54:57
n°470447
drasche
Posté le 29-07-2003 à 08:31:07  profilanswer
 

ah ok si tu as trouvé une solution valable, tant mieux :jap:

n°470659
Aratorn
Black Swordman
Posté le 29-07-2003 à 10:59:09  profilanswer
 

Sinon, les packages fait par VB avec "Assistant Empaquetage & déploiement" enregistre automatiquement les ActivesX référencés dans le projet.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vb6] probleme avec un commondialog

 

Sujets relatifs
[JS] problème avec les expressions régulièresProbleme de config Apache (recup variable)
Gros problème de lenteur inexplicable :(Problème avec une Extension Shell Windows
problème de fichier .htaccessProblème en upgradant à mysql 4.0.14!
[C]Probleme de char et stringProbleme avec mon fichier .htaccess
[MYSQL] Probleme avec la commande LOAD DATA LOCAL INFILE...[MYSQL] Probleme avec la commande LOAD DATA LOCAL INFILE...
Plus de sujets relatifs à : [vb6] probleme avec un commondialog


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR