begin process at 2012 02 13 03:33:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > DLLREGISTER (UN VRAI REGISTER/UNREGISTER D'OCX, SANS REGSVR32)

DLLREGISTER (UN VRAI REGISTER/UNREGISTER D'OCX, SANS REGSVR32)


 Information sur la source

Note :
8,81 / 10 - par 31 personnes
8,81 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :regsvr32, register, unregister, ocx Niveau :Initié Date de création :23/10/2001 Vu :13 070

Auteur : processus

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Ouhais, moi, j'en ai marre des code dégeus qui explique comment, pour la xème fois, enregistrer un OCX avec regsvr32... Bien crade, quoi.

Alors voici comment enregistrer en interne, dynamiquement, un composants ActiveX en utilisant les API.

Principe : Les ActiveX possèdent tous deux méthodes qui s'appellent 'DLLRegisterServer' et 'DLLUnRegisterServer' ; REGSVR32 ne fait rien d'autres que les appeller suivant le cas...

Source

  • Option Explicit
  • ' #####################################################################################
  • ' # Reg auto d'un ActiveX
  • ' # Peut être utile pour un plug in
  • ' #####################################################################################
  • Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
  • Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  • Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  • Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
  • Private Const ERROR_SUCCESS = &H0
  • Public Function RegisterServer(ByVal Prm_L_hWnd As Long, ByVal Prm_S_DllServerPath As String, byval Prm_B_Register As Boolean) as boolean
  • On Error Goto RegisterServer_Err
  • Dim L_Lib As Long
  • Dim L_ProcAdress As Long
  • L_Lib = LoadLibrary(Prm_S_DllServerPath)
  • If Prm_B_Register Then
  • L_ProcAdress = GetProcAddress(L_Lib, "DllRegisterServer")
  • Else
  • L_ProcAdress = GetProcAddress(L_Lib, "DllUnregisterServer")
  • End If
  • If CallWindowProc(L_ProcAdress, Prm_L_hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
  • RegisterServer = True
  • Else
  • RegisterServer = False
  • End If
  • Call FreeLibrary(L_Lib)
  • Exit Function
  • RegisterServer_Err:
  • Call MsgBox("Erreur numéro : " & Err.Number & vbCrLf & "Description : " & Err.Description)
  • End Function
Option Explicit

' #####################################################################################
' # Reg auto d'un ActiveX
' # Peut être utile pour un plug in
' #####################################################################################

Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Const ERROR_SUCCESS = &H0

Public Function RegisterServer(ByVal Prm_L_hWnd As Long, ByVal Prm_S_DllServerPath As String, byval Prm_B_Register As Boolean) as boolean

    On Error Goto RegisterServer_Err

    Dim L_Lib As Long
    Dim L_ProcAdress As Long
    
    L_Lib = LoadLibrary(Prm_S_DllServerPath)

    If Prm_B_Register Then
        L_ProcAdress = GetProcAddress(L_Lib, "DllRegisterServer")
    Else
        L_ProcAdress = GetProcAddress(L_Lib, "DllUnregisterServer")
    End If

    If CallWindowProc(L_ProcAdress, Prm_L_hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
        RegisterServer = True
    Else
        RegisterServer = False
    End If

    Call FreeLibrary(L_Lib)
    
    Exit Function

RegisterServer_Err:

    Call MsgBox("Erreur numéro : " & Err.Number & vbCrLf & "Description : " & Err.Description)

End Function  

 Conclusion

Voila... Donc, pour l'utiliser :

  Call RegisterServer(Form1.hWnd, "COMCTL32.OCX", True) ' False pour Unregister


 Sources du même auteur

Source avec Zip Source avec une capture MP3 INDEX: GESTIONNAIRE DE FICHIERS MP3
Source avec Zip Source avec une capture ENVOYER OUTLOOK EXPRESS OU OUTLOOK DANS LA SYSTRAY
Source avec Zip Source avec une capture #PROGRAMMATION LOG CLEANER (CONVERSION D'UN FICHIER .LOG MIR...
Source avec Zip Source avec une capture DEPUIS QUAND LE SYSTÈME EST T'IL CHARGÉ ?
Source avec Zip UN PETIT SLIDESHOW RAPIDE

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) INSTALL DLL OCX ( ACTIVEX ) par gillardg
Source avec Zip Source avec une capture REGISTRATION DES FICHIERS OCX, DLL, .... par Denis75
Source avec Zip Source avec une capture ENREGISTREMENT DE COMPOSANTS POUR WINDOWS (DLL, OCX) par Platon
Source avec Zip Source avec une capture CLM'S REGSVR32 : ENREGISTREMENT DE DLL ET OCX par clementio
Source avec Zip Source avec une capture REG ACTIVEX [ENREGISTRE LES FICHIERS .OCX] par noxious

Commentaires et avis

Commentaire de cyrilp le 11/01/2002 12:23:41

Bravo, rien à redire...
Pour confirmer les commentaires sur ce code : C'est un site de CODES SOURCES.

Les EXE on en veut pas (ou seulement pour pouvoir tester le prog' avant de regarder la source)

Bon travail !

A++

Nb : Je te met un petit 8/10 !

Commentaire de Bast le 07/03/2002 11:57:08

Bonne idée de source.

Commentaire de FredJust le 06/07/2002 01:04:22

HOU LA LA
faites quelques test avant d'ecrire n'importe quoi
mes ActiveX VB6 s'enregistre tout seul comme des grands
A LIRE :
http://fred.just.free.fr/francais/activex/utilisation.html

Commentaire de olid le 06/09/2002 18:30:43

Heu...zest essayé, et zà plante mon appli au démarrage :o(((((((

Par manque de connaisssance, jinstalle les OCX et DLL dans le même dossier que mon appli...Est-ce zà mon erreur ?

Sui je obligé de les installer dans SYSTEM ou SYSTEM32 ?

Commentaire de cyrilp le 10/05/2003 22:38:02

Y'a longtemps que j'etais pas passé sur cette code et....
juste un petit mot à FredJust... Tu dis que tes OCX s'enregistrent tout seul ???

Alors pourquoi dans ton site tu explique comment utiliser RegSvr32 ???
As tu compris l'interet de cette source au moins ?

A+
Cyril

Commentaire de FLYeRNeT le 04/08/2006 09:50:06

Sympa cette source, mais ce que je recherche c'est à enregistrer un ocx ou une dll avec mon programme que si ça n'a pas été fait précédemment.
Sur quelle clef du registre se baser pour ne lancer le regsvr32 que si l'activeX n'est pas déjà enregistré sur le systeme ?

Commentaire de kakenette le 14/02/2008 23:09:49

Dommage que mes antivirus et anti-spywares detect l'enregistrement et le classe parmis un badware :/

Commentaire de zen69 le 13/03/2008 20:49:37

C'est bien beau tout ca... mais ca me retourne true meme si le composant n'est pas correctement enregistrer... tu as une idee pourquoi ?

Commentaire de zen69 le 13/03/2008 21:10:49

Et aussi a quoi ca sert le premier parametre (window.hwnd) ... ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Impossible de register MCI32.ocx [ par olivierarnaud ] que ce soit par regsrv32 ou par l'API. KK'un aurait-il une petite idée.J'ai utiliser l'API pour registrer comctl32.ocx et ça marche mais pas avec MCI3 shell [ par drpsico ] bonjour est ce quelqu'un c pk a et b ne son pas reconnuDim A, BPrivate Sub Form_Load()A = App.Path & "\MSCOMCTL.OCX"B = App.Path & "\MSWINSCK.OCX"Shel Enregistrement d'ocx [ par whombat ] Bonjour, Je suis très ennuyé. Je viens de changer de configuration informatique etr aussi d'OS. Je suis passé de W2000 à XP Media. J'avais des ocx Contraire de Regsvr32 [ par pimousse75 ] Bjr,comment effacer une ocx en base de registre, cad le contraire de regsvr32 mon_ocx.ocxMerci ! OCX + register? [ par zen69 ] Salut tout le monde,Petite question tres simple, est-ce qu'on est obligé de register un ocx que l'on veut utiliser dans son projet?Parce que je croyai probleme de register avec anciens OCX... [ par yorom ] bonjourje viens de reprendre la prog d'un logiciel ecrit en vb4 qui utilisait les controls Sheridan 3d, Outline et Grid (tous ocx) hors depuis vb5 et VSSBrowser.ocx [ par francis de ziburu ] [size=200]j'utilise le control vssbrowser.ocx pour lire un bd sourcesafe dans visual basic; je l'ai recuperé sur sourceforge.net mais quand je tape l Installation OCX sur Seven [ par pnavarre ] Bonjour, J'ai créé en 2004 un « activex (.ocx) » avec "Visual studio 6", mais suite à de nombreux déplacements et à un krash sérieux, j'ai perdu les tabctl32.ocx OK mais pas de choix MS Tabbed dialog [ par mika7787 ] Bonjour, Je suis en VB5. Je veux activer SSTab. J'ai bien tabctl32.ocx présent dans windows\system32 mais, quand je fais Projet/Composants, l'option trouver les fichiers dll et ocx necessaire au bon fonction du soft [ par metallicox78 ] Salut,j'aimerai savoir comment faire pour connaitre les fichiers dll et ocx nécessaires au fonctionnement du .exe pour qu'il puisse marcher sur un aut


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,972 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales