OCX DLL Utilisation en cours d'execution du programme [Résolu]

Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 23 sept. 2005 à 23:19 - Dernière réponse :
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
16 juillet 2009
- 11 févr. 2006 à 16:37
Salut a tous,

Je voudrais savoir comment on peu utiliser une dll ou ocx si on ne la pas enregistrer dans les references ni dans les composants



Une solutions ma été proposé mais je n'arrive pas a utiliser cette fonction :

CreateObject

La seule fois que j'utilise cette fonction s'est pour la base de registre :

Dim Ws as Object

Set Ws = CreateObject("Wscript.Shell")

Wscript est un logiciel (exe) et Shell surement une classe

Mais pour une ocx sa ne marche surement pas pareil ?



Merci a tous et a plus !



Thyrael
Afficher la suite 

22 réponses

Meilleure réponse
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:55
3
Merci
bien sûr que çà marche, elle est enregistrée.
tu n'as donc pas besoin d'utiliser un CreateObjet.
bref, je comprend pas tout, mais si c'est ok pour toi, tant mieux
PCPT

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 23 sept. 2005 à 23:32
0
Merci
salut,
on ne peut pas.
PCPT
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Dernière intervention
9 juin 2006
- 24 sept. 2005 à 01:07
0
Merci
WScript n'est pas un exe !! C'est un activeX !! WScript.shell représente l'objet de classe Shell de l'activeX WScript
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 24 sept. 2005 à 09:12
0
Merci
En ActiveX, tu n'as pas le choix : il faut enregistrer la dll ou l'ocx
pour pouvoir l'utiliser, que ce soit en EarlyBound (donc avec une
référence sous VB) ou en LateBound (donc avec ta méthode de
CreateObject).


Si tu veux vraiment faire des dll qui n'ont pas besoin d'être
enregistrée, il faudras passer aux dll C beaucoup moins souples, mais
plus rapides.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 22:25
0
Merci
Oui mais si on prend des logiciel comme winamp windows media player qui utiliser des dlls, quand on fais une mise a jours d'un plug-in on il ne refon pas toutes l'application pour déclaré une Dll (en même temps s'est du c++ enfin je croit) si il peuvent le faire en c en c++ en asm en se que vous voulez on doit pouvoir le faire sur du VB comme le CreateObject

Si on fait du VBS (Visual Basic Script) les exemples de windows montrer le lancement de excel et la modification d'un tableau, j'ai essayer de même avec mes application et je n'y suit pas arrivé (sources sur Win98 recherche : *.vbs)

Merci de vos aides

PS:Crenaud76 ("C:\WINDOWS\system32\wscript.exe") existe se n'est peu etre pas la ou il prend la fonction mais il existe !
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:00
0
Merci
salut
tes exemples sont mauvais.
et tu confonds apparemment utiliser sans enregistrer, et enregistrer dynamiquement....

fait une application qui scanne au démarage (en module) toutes les dll qu'elle a dans un dossier précis.
on peut supposer qu'elle enregistre toutes les dll de ce dossier. tu peux donc les utiliser. c'est le principe du Plug-In.
çà ne change rien au fait que tu ne peux pas les utiliser sans les enregistrer

PCPT
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:02
0
Merci
Donc je doit enregistrer (pendant l'executions du programme) les dlls et ocxs ?
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:03
0
Merci
ouai, çà tu peux.
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:04
0
Merci
Et comment alors ?
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:15
0
Merci
je ne vois plus du tout où tu veux en venir par rapport à ce que tu disais au départ.
bref.

disons que ta Form1 est ta feuille de démarrage
tu créés un module Mod_Main

dedans, une procédure :




'module de démarrage
Public Sub Main()
'un seul lancement de l'appli
If App.PrevInstance Then End

'enregistrement dll/ocx -- (Thx DarkSidious)
Shell ("RegSvr32.exe -s " & App.Path & "\AFCK_AnimCur.dll")
Shell ("RegSvr32.exe -s " & App.Path & "\AFCK_Timer.ocx")

'affiche la form principale
Form1.Show
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


et dans tes options de projet, tu sélectionnes ton Sub Main

PCPT
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:18
0
Merci
Eu et comment j'utiliser les fonction propre a chacune ?
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:26
0
Merci
et nous voici donc au point que je ne pouvais comprendre...

le principe d'enregistrer en dynamique est que bien sur, tu dois prévoir avant le format et les fonctions des DLL ActiveX ajoutées.
ton soft doit donc être capable de les ajouter et de les intégrer, et c'est la DLL elle-même quit doit s'auto-gérer, et non plus ton appli

PCPT
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:36
0
Merci
Pas tous compris !!!
lol
Mais je peu bien utiliser une ActivX wscript excel word ... et je ne l'ai pas enregistrer !
Exemple a voir si sa marche :

Dll (en vb)
Nom interne : DllTeste
Nom du fichier : Yo.dll
Nom de classe: Teste

<HR>
public function PtitFunc (byval Arg as string) as long
Msgbox Arg
PtitFunction = 1
end function


<HR>


Exe (en VB)


<HR>

Public sub ExecFunc ()
Dim Tst as ObjectSet Tst CreateObject("DllTeste.Teste") ou Set Tst CreateObject("Yo.Teste")
Tst.PtitFunc "Yo sa marche ou pas ?"
End sub


<HR>

Alors qu'en pense tu ?
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:40
0
Merci
j'en pense que çà ne marchera pas
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:41
0
Merci
Ok je vais essayer tt de suite
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 oct. 2005 à 23:42
0
Merci
à la limite, selon ce que ton utilisation laisse penser, je ne vois pas pourquoi tu veux ne pas enregistrer la dll
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:42
0
Merci
???
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:47
0
Merci
Tsè koi sa march a merveille !
SA MARCHE !!!
merci de ton aide :

exe

<HR>
Shell ("RegSvr32.exe -s D:\Program Files\Microsoft Visual Studio\VB98\teste.dll")
DoEvents
Dim S As Object
Set S = CreateObject("Teste.testecls")
MsgBox S.yo

<HR>
dll
nom = Teste
Classe=TesteCls

<HR>
Public Function Yo() As String
Yo = "Sa marche"
End Function

<HR>
Messages postés
159
Date d'inscription
mardi 17 décembre 2002
Dernière intervention
23 novembre 2011
- 4 oct. 2005 à 23:57
0
Merci
Lol merci pour tous !
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
16 juillet 2009
- 11 févr. 2006 à 14:35
0
Merci
Salut à vous 2
j'aimerais savoir s'il est possible de faire la meme chose avec des ocx, j'ai essayé la meme démarche que vous mais je n'arrive à rien. Et comme ce sont des controles que je veux charger (et non pas des dll), je ne sais pas quoi faire???
Merci d'avance

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.