les OCX > VBE OCX
 
VB EDitor OCX version 2.0

Un petit pas pour l'homme
un grand pas... Faut aller dormir maintant !

 

   Cette ocx contient un projet *.vbp et quelques forms vous donnant un exemple d'utilisation de la majorité des méthodes de l'ocx.

Description:

   Cette ocx permet avant tout de pouvoir décompiler l'interface graphique de vos programmes VB et d'éditer directement les propriétées des objets dans l'executable.

   Cette ocx est idéale pour l'incorporer dans n'importe lequel de vos projet vb. Vous pourez ainsi extraire toutes les informations a partir de vos propres programmes.


  

Aperçu :

Apperçus1Apperçus2
 

Paramètres de l'ocx :

  • FileName:
  •   Ce paramètre est essentiel avant toute utilisation, il correspond au nom chemin du fichier que vous voulez décompiler.

  • Generate:

       Ce paramètre Sert a savoir si vous voulez générer un projet VBP (Generate=TRUE) sinon par défaut il est sur FALSE

  • LongeurData:
  •    Ce paramètre ne sert a rien dans l'immédiat, il est utilisé en interne de l'ocx

  • Nb_Objet:

      Ce paramètre renvoit le nombre d'objet trouvé par l'ocx après avoir chargé un fichier.

  • OutputDir:
  •   Ceci est le chemin de destination lorsque vous voulez générer un projet *.VBP

  • TrvActive:

      Ce paramètre sert a savori si l'ocx affiche le résultat de la décompilation sous forme de tableau (TrvActive=False) ceci est un paramètre par défaut, ou si l'ocx affiche le résultat sous forme d'un arbre hierarchique (TrvActive=True).

  • TrvOpen:

     Ce paramètre est utilisé uniquement lorsque le paramètre TrvActive a la valeur TRUE. Il sert a dérouler l'arbre automatiquement après décompilation du projet. Si cette valeur vaut "FALSE" alors seul les objets "contenant" ou objets "pères" seront afficher directement. Bien entendu vous pourez voir les objets fils en déroulant l'arbre manuellement d'un simple click.

Les Méthodes :

  • ConfigGrid(Appearance3D As Boolean, ScrollBarStatus_0_to_3 As Integer, ForeColor As ColorConstants, BackColor As ColorConstants, Width As Integer, heightt As Integer, RowNumber As Integer):

      Cette méthode sert a configurer le tableau de l'ocx. il permet comme certains autre objets usuel de paramétrer son apparence (3D ou plat); afficher ou pas les scrollbar (aucun=2, horizontal=1, vertical=3, ou les deux =0); fixer la couleur du texte, celle de l'arrière plan, fixer sa largeur (width), sa hauteur (heightt) et le nombre de ligne qu'il va afficher.

    Attention!!! si le nombre de ligne est inférieur au nombre d'objets contenu dans l'executable ceci aura pour cause de faire planter l'ocx!!!

  • ConfigTree(Apparence3D As Boolean, BorderStyleFixedSingle As Boolean, Width As Integer, heightt As Integer)

   Comme la méthode précédente , cette méthode permet à l'utilisateur de paraméter le treeview lui même. Il peut donc régler l'Apparence3D (3D ou plat), le BorderStyleFixedSingle ( avec ou sans contour), la largeur (Width) et la Hauteur du controle (heightt)

  • decompileobjt(ByVal offset As Long, ByVal Name As String)

   Cette méthode est un peu particulière car elle permet de décompiler les paramètres d'un objet en particulier. Il faut néanmoins avoir chargé un fichier exe par la méthode "LoadFile" (voir plus bas) , et lui renvoyer par l'intermédiaire de l'argument offset, l'offset de début de propriété, ainsi que le Nom par l'argument Name; pour un objet donné. L'exemple dans le projet VBP fourni avec cette ocx illuste bien son utilisation. Les paramètres sont renvoyés par l'évènement GetDecompiledValue(Property_Name As String, ByVal val As Variant, ByVal offset As Long) les uns a la suite des autres.

  • GenerateFrm(OutDir As String)

   Cette méthode est très simple d'emploi et ne nécessite aucun paramètre compliqué.Elle sert à générer un projet VBP avec ses forms dans un dossier particulier désigné par l'argument OutDir. Vous devez la aussi avori utiliser la méthode "LoadFile" avant de pouvori l'utiliser correctement.

  • GetComponents()

   Cette méthode renvoit un par un par l'intermédiaire de l'évènement GetComponents(component As String, Location As String, Included As String), les composant DLL ou Active X associées à l'executable.

  • GetDataCode(BeguiningObjOffset As Long)

   Cette méthode est très utile pour récupérer la chaine ascii ainsi que le code hexa d'un objet en particulier. Toutes ces informations sont encore uen fois rapatriées par un évènement: ObjetData(DataInHex As String, DataInString As String)

  • GetDescEn(ByVal ParamName As String) As String

   Cette méthode est intéressante d'un point de vue GUI, car elle renvoit directement la description (ici en Anglais) d'une propriétée donnée. pour ce faire il suffit juste de lui retourner en argument ParamName le nom de la propriétée souhaitée. Ces noms sont données lorsque l'évènement GetDecompiledValue(Property_Name As String, ByVal val As Variant, ByVal offset As Long) est activé. Property_Name correspond donc à un nom de propriété valide pour notre argument ParamName.

  • GetDescFr(ByVal ParamName As String) As String

   Cette méthode est à la même fonction que ca méthode précédente a l'exeption pret que la valeur renvoyé est en FRANCAIS

  • GetGridList()

   Cette fonction renvois toutes les informations du tableau de l'ocx. Cependant ces informations sont données une première fois lors de l'utilisation de la méthode "LoadFile".

  • GetOCXDesc(ByVal DescName As String) As String

   Cette méthode renvoit simplement des informatiosn sur l'ocx par l'intermédiaire de l'argument DescName.

les différents valeurs de DescName sont: "Description", "Name", "Version.Minor", "Version.Major", "Version.Revisions", "Author", "Url_Author", "OCXBuilds", "CopyRights", "FileName", "VBKCompatible", "ObjReplace".

  • GetStringList()

   Cette méthode permet de récupérer toutes les chaines de caractère discéminées dans l'executable (souvent des messages de MsgBox), et renvoit aussi les offset ainsi que le type de chaine de caractère (Unicode ou normal). Tout ceci est renvoyé par l'évènement StringList(S_tring As String, offset As Long, Unicode As Boolean). La valeur unicode signifie juste que chaque lettres de la chaine de caractère est entrecoupée de chr$(0) dans le fichier exe. Il faut donc bien y faire attention lors d'une édition directe.

  • LoadFile(ByVal fichier As String)

   Cette méthode est la clée de tout le système, la plupars des autres méthodes ne fonctioneront pas (ou planteront) si cette méthode n'a pas été au préalablemetn utilisé au moins une fois. Elle permet de lancer la recherche des objets, et de récupérer leurs principales caractéristique tel que le type d'objet, le nom, les offsets, et les liens hierarchiques de parentés. Tout ceci est archivé ensutie dans le tableau de l'ocx, et renvoyé a travers l'évènement FindObj(offset As Long, Name As String, Caption As String, typObj As String, Debutpropriétées As Long, finpropriétées As Long, Etatcont As Integer, Lname As Integer, LCaption As Integer).

  • SetProperty(objname As String, ObjOffset As Long, Propoffset As Long, Value As Variant, VariableType As VbVarType) As Boolean

   Cette méthode bien que pouvant être coder à part de l'ocx, est ici intégrée. Elle permet de modifier directemetn dans l'executable un paramètre particulier. il lui suffit de l'offset de début d'objet :ObjOffset, de son offset de propriété à l'intérieur de l'objet :Propoffset, de la valeur qu'on désire écrire dans l'executable, et le type de la valeur a écrire: VariableType. Ce dernier paramètre peut être difficile à estimer si l'utilisateur n'as aucune notion de la décompilation des objets. Cette fontion sera simplifier dans les versions ultérieurs en suprimant l'argument VariableType et en le remplaçant par le nom de la propriétée. ceci permettra a l'utilisateur de ne pas se soucier du type de donée à remplacer. Pour le momment avis aux ammateur ;-P

 

Les Evènements :

  • FindObj(offset As Long, Name As String, Caption As String, typObj As String, Debutpropriétées As Long, finpropriétées As Long, Etatcont As Integer, Lname As Integer, LCaption As Integer)
  • Cet évènement renvoit les objets trouvé un par un avec leurs paramètres principaux.

  • GetDecompiledValue(Property_Name As String, ByVal val As Variant, ByVal offset As Long)

    Cet évènement renvoit les propriétées une par une décompilées, avec leurs nom, leurs valeur et leurs offset dans l'objet à laquelle elle appartient.

  • GetComponents(component As String, Location As String, Included As String)
  • Ici les composants ActiveX, ainsi que les Dll utilisées par l'éxécutables sont renvoyées, avec leurs nom (component), leurs Location sur votre système d'exploitation, et les Librairies utlisées Included

  • StringList(S_tring As String, offset As Long, Unicode As Boolean)

    Cet évènement renvoit les chaines de caractères trouvées dans l'executables, avec leurs valeurs (S_tring), leurs offset(offset), et leurs type (Unicode ou pas). Certaines chaines de caractère peuvent ne pas appartenir à un objet mais faire partie de certaines fonctions internes à l'executable tel un classique Msgbox.

  • Error(Errordescription As String)

   Cette évènement renvoit toutes les erreurs éventuelles liées à l'execution des diverses commandes de l'ocx.

  • GridInfos(offset As Long, Name As String, Caption As String, typObj As String, Debutpropriétées As Long, finpropriétées As Long, Etatcont As Integer, Lname As Integer, LCaption As Integer, Index As Integer)

   Cet évènement est ici pour permettre à l'utilisateur de rapatrier une fosi de plus la liste des objets ultérieurement recherchés.

  • TreeSelectedItemNfo(Name As String, offset As Long)

   Renvoit le nom et l'offset de l'objet sélectioné sur l'arbre de l'ocx. Utile pour demander directement les propriétées de cette objet sans passer par des listes.

  • ObjetData(DataInHex As String, DataInString As String)

   Renvoit la valeur Hexa (DataInHex) et la valeur ascii (DataInString) du code de l'objet voulu.=> fonction de visualisation directe des propriétées.

  • PercentageAcomplished(Percentage As Integer)

    Cette évènement permet de connaitre en pourcentage l'état d'avancement de la méthode LoadFile et GenerateFrm.

 

Téléchargement :

  Cliquez ici pour télécharger le fichier WinZip (169 Ko)

Including :

VB EDITOR.OCX
test.fr
Form2.frm
Form3.frm
test.vbp