Tuto : Comment créer un plugin avec SoftwareZator ?
Avant de commencer ce tuto, sachez qu’il faut savoir programmer en VB.NET pour faire un plugin.
Un plugin est une action que vous pouvez ajouter à SZ. Cette action, vous pourrez ensuite la mettre par exemple lorsque vous cliquez sur un bouton. Bref, ils sont essentiels à SZ.
Un plugin se compose de 3 fichiers :
- Un fichier « .dll » créer avec Visual Basic qui contient toutes les informations nécessaire sur le plugin comme l’image afficher, le nom du plugin…
- Un fichier « .xml » créer avec un éditeur XML comme DreamWeaver, ou même avec WebzDitor. Il contient le code Visual Basic que le programme effectuera pour l’action correspondante.
- Un fichier « .html » créer avec tout éditeur de site. Il contient le texte affiché dans le panneau en bas de SZ, l’aide rapide. Il est facultatif mais utile.
Etant donné qu’une explication ne vaut pas un bon exemple, nous allons créer ensemble un plugin pour supprimer un fichier. Certes, il existe déjà dans SZ, mais il faut bien commencer par quelque chose !
Pour commencer, ouvrez Visual Basic, et créer un nouveau projet de type « Bibliothèque de classes » Vous avez votre nouveau projet ouvert sur « Class1.vb ». Renommer ce fichier avec le nom de votre plugin. Attention, choisissez un nom sans espace comme « Mon_Plugin.vb », et retenez-le, vous en aurez besoin plus tard.
Dans Visual Studio, allez dans « Projet > Ajouter une référence » puis l’onglet « Parcourir »
Rendez vous dans ProgramFiles > Veler Software > SoftwareZator et prenez double cliquez sur « VelerSoftware.Plugins.dll ».
Ensuite, faites Projet > Ajouter un forumlaire Windows.
Vous avez votre Form1.vb de créée.
Faites sur cette page l’interface de votre Plugin. C'est-à-dire la fenêtre qui va s’afficher lorsque vous insèrerez votre Plugin dans votre évènement. Pour notre Plugin, nous allons insérer un « OpenFileDialog », un « TextBox » et 3 « Button ». Placer les comme bon vous semble, mais soignez l’interface quand même. Rajouter des labels, des images…
Un bouton servira à sélectionner le fichier à supprimer, l’autre à faire « Ok » est l’autre « Annuler »
Dans Visual Studio, faites « Projet > Ajouter un module ». Nommer ce module « Variable.vb ».
Maintenant, un peu de copier coller J
Dans « Variable.vb », copier ceci :
Public objHost As VelerSoftware.Plugins.IHost
Public Param1 As String
Public Param2 As String
Public Param3 As String
Public Param4 As String
Public Param5 As String
Public Param6 As String
Public Param7 As String
Public Param8 As String
Public Param9 As String
Public Param10 As String
Public Param11 As String
Public Param12 As String
Public Param13 As String
Public Param14 As String
Public Param15 As String
Public Param16 As String
Public Param17 As String
Public Param18 As String
Public Param19 As String
Public Param20 As String
C’est la liste des variables que vous pourrez utiliser pour renvoyer des informations à SZ.
Retourner dans « Mon_Plugin.vb » et copier :
Implements VelerSoftware.Plugins.IPlugin
Public Sub Initialize(ByVal Host As VelerSoftware.Plugins.IHost) Implements VelerSoftware.Plugins.IPlugin.Initialize
objHost = Host
End Sub
' La fonction Main est la fonction lancé par SoftwareZator
Public Function Main() As Boolean Implements VelerSoftware.Plugins.IPlugin.Main
' Mise à jour des paramètre
Variable.Param1 = Nothing
Variable.Param2 = Nothing
Variable.Param3 = Nothing
Variable.Param4 = Nothing
Variable.Param5 = Nothing
' on affiche l'interface du plugin
Dim frm As New Form1
If frm.ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.Param1 = Variable.Param1
Me.Param2 = Variable.Param2
Me.Param3 = Variable.Param3
Me.Param4 = Variable.Param4
Me.Param5 = Variable.Param5
Return True
Else
Me.Param1 = Variable.Param1
Me.Param2 = Variable.Param2
Me.Param3 = Variable.Param3
Me.Param4 = Variable.Param4
Me.Param5 = Variable.Param5
Return
End If
Return Nothing
End Function
' Est égale au nom du plugin
#Region "Name"
Public ReadOnly Property Name() As String Implements VelerSoftware.Plugins.IPlugin.Name
Get
Return "Mon_Plugin"
End Get
End Property
#End Region
' Est égale au texte affiché dans SoftwareZator
#Region "Text"
Public ReadOnly Property Text() As String Implements VelerSoftware.Plugins.IPlugin.Text
Get
Return "Supprimer un fichier"
End Get
End Property
#End Region
' Est égale à la phrase affiché dans l'éditeur de Classe/Module pou la description de l'action et de ses paramètres
#Region "Sentence"
Public ReadOnly Property Sentence() As String Implements VelerSoftware.Plugins.IPlugin.Sentence
Get
Return String.Format("Supprimer un fichier")
End Get
End Property
#End Region
' Description du plugin
#Region "Description"
Public ReadOnly Property Description() As String Implements VelerSoftware.Plugins.IPlugin.Description
Get
Return "Supprime de votre ordinateur un fichier choisis."
End Get
End Property
#End Region
' Catégorie du plugin
#Region "Category"
Public ReadOnly Property Category() As String Implements VelerSoftware.Plugins.IPlugin.Category
Get
Return "Ma Catégorie"
End Get
End Property
#End Region
' Est égale à l'image affiché dans la boîte à outils
#Region "ToolBoxImage"
Public ReadOnly Property ToolBoxImage() As Image Implements VelerSoftware.Plugins.IPlugin.ToolBoxImage
Get
Return Nothing
End Get
End Property
#End Region
' Est égale au fichier xml contenant les code à compiler
#Region "FileCode"
Public ReadOnly Property FileCode() As String Implements VelerSoftware.Plugins.IPlugin.FileCode
Get
Return "MonPlugin.xml"
End Get
End Property
#End Region
' Est égale au fichier html contenant la documentation devant être affiché dans l'Aide Rapide.
#Region "FileHelp"
Public ReadOnly Property FileHelp() As String Implements VelerSoftware.Plugins.IPlugin.FileHelp
Get
Return "MonPlugin.html"
End Get
End Property
#End Region
' Si une class doit être ajouté pour être compilé, le fichier source dans lequel se trouve le code doit être indiqué ici.
#Region "ClassCode"
Public ReadOnly Property ClassCode() As String Implements VelerSoftware.Plugins.IPlugin.ClassCode
Get
Return Nothing
End Get
End Property
#End Region
' Compatible ou non avec les modules
#Region "CompatibleModule"
Public ReadOnly Property CombatibleModule() As Boolean Implements VelerSoftware.Plugins.IPlugin.CombatibleModule
Get
Return False
End Get
End Property
#End Region
' Compatible ou non avec les classes
#Region "CompatibleClass"
Public ReadOnly Property CompatibleClass() As Boolean Implements VelerSoftware.Plugins.IPlugin.CombatibleClass
Get
Return False
End Get
End Property
#End Region
' Compatible ou non avec les subs et fonctions
#Region "CompatibleSunbFunction"
Public ReadOnly Property CompatibleSubFonction() As Boolean Implements VelerSoftware.Plugins.IPlugin.CombatibleSubFonction
Get
Return True
End Get
End Property
#End Region
' Définit si le code s'étend sur plusieur lignes
#Region "Lines"
Public ReadOnly Property Lines() As Boolean Implements VelerSoftware.Plugins.IPlugin.Lines
Get
Return False
End Get
End Property
#End Region
' Paramètre numéro 1
#Region "Param1"
Private _Param1 As String = ""
Public Property Param1() As String Implements VelerSoftware.Plugins.IPlugin.Param1
Get
Return _Param1
End Get
Set(ByVal value As String)
_Param1 = value
End Set
End Property
#End Region
' Paramètre numéro 2
#Region "Param2"
Private _Param2 As String = ""
Public Property Param2() As String Implements VelerSoftware.Plugins.IPlugin.Param2
Get
Return _Param2
End Get
Set(ByVal value As String)
_Param2 = value
End Set
End Property
#End Region
' Paramètre numéro 3
#Region "Param3"
Private _Param3 As String = ""
Public Property Param3() As String Implements VelerSoftware.Plugins.IPlugin.Param3
Get
Return _Param3
End Get
Set(ByVal value As String)
_Param3 = value
End Set
End Property
#End Region
' Paramètre numéro 4
#Region "Param4"
Private _Param4 As String = ""
Public Property Param4() As String Implements VelerSoftware.Plugins.IPlugin.Param4
Get
Return _Param4
End Get
Set(ByVal value As String)
_Param4 = value
End Set
End Property
#End Region
' Paramètre numéro 5
#Region "Param5"
Private _Param5 As String = ""
Public Property Param5() As String Implements VelerSoftware.Plugins.IPlugin.Param5
Get
Return _Param5
End Get
Set(ByVal value As String)
_Param5 = value
End Set
End Property
#End Region
' Paramètre numéro 6
#Region "Param6"
Private _Param6 As String = ""
Public Property Param6() As String Implements VelerSoftware.Plugins.IPlugin.Param6
Get
Return _Param6
End Get
Set(ByVal value As String)
_Param6 = value
End Set
End Property
#End Region
' Paramètre numéro 7
#Region "Param7"
Private _Param7 As String = ""
Public Property Param7() As String Implements VelerSoftware.Plugins.IPlugin.Param7
Get
Return _Param7
End Get
Set(ByVal value As String)
_Param7 = value
End Set
End Property
#End Region
' Paramètre numéro 8
#Region "Param8"
Private _Param8 As String = ""
Public Property Param8() As String Implements VelerSoftware.Plugins.IPlugin.Param8
Get
Return _Param8
End Get
Set(ByVal value As String)
_Param8 = value
End Set
End Property
#End Region
' Paramètre numéro 9
#Region "Param9"
Private _Param9 As String = ""
Public Property Param9() As String Implements VelerSoftware.Plugins.IPlugin.Param9
Get
Return _Param9
End Get
Set(ByVal value As String)
_Param9 = value
End Set
End Property
#End Region
' Paramètre numéro 10
#Region "Param10"
Private _Param10 As String = ""
Public Property Param10() As String Implements VelerSoftware.Plugins.IPlugin.Param10
Get
Return _Param10
End Get
Set(ByVal value As String)
_Param10 = value
End Set
End Property
#End Region
' Paramètre numéro 11
#Region "Param11"
Private _Param11 As String = ""
Public Property Param11() As String Implements VelerSoftware.Plugins.IPlugin.Param11
Get
Return _Param11
End Get
Set(ByVal value As String)
_Param11 = value
End Set
End Property
#End Region
' Paramètre numéro 12
#Region "Param12"
Private _Param12 As String = ""
Public Property Param12() As String Implements VelerSoftware.Plugins.IPlugin.Param12
Get
Return _Param12
End Get
Set(ByVal value As String)
_Param12 = value
End Set
End Property
#End Region
' Paramètre numéro 13
#Region "Param13"
Private _Param13 As String = ""
Public Property Param13() As String Implements VelerSoftware.Plugins.IPlugin.Param13
Get
Return _Param13
End Get
Set(ByVal value As String)
_Param13 = value
End Set
End Property
#End Region
' Paramètre numéro 14
#Region "Param14"
Private _Param14 As String = ""
Public Property Param14() As String Implements VelerSoftware.Plugins.IPlugin.Param14
Get
Return _Param14
End Get
Set(ByVal value As String)
_Param14 = value
End Set
End Property
#End Region
' Paramètre numéro 15
#Region "Param15"
Private _Param15 As String = ""
Public Property Param15() As String Implements VelerSoftware.Plugins.IPlugin.Param15
Get
Return _Param15
End Get
Set(ByVal value As String)
_Param15 = value
End Set
End Property
#End Region
' Paramètre numéro 16
#Region "Param16"
Private _Param16 As String = ""
Public Property Param16() As String Implements VelerSoftware.Plugins.IPlugin.Param16
Get
Return _Param16
End Get
Set(ByVal value As String)
_Param16 = value
End Set
End Property
#End Region
' Paramètre numéro 17
#Region "Param17"
Private _Param17 As String = ""
Public Property Param17() As String Implements VelerSoftware.Plugins.IPlugin.Param17
Get
Return _Param17
End Get
Set(ByVal value As String)
_Param17 = value
End Set
End Property
#End Region
' Paramètre numéro 18
#Region "Param18"
Private _Param18 As String = ""
Public Property Param18() As String Implements VelerSoftware.Plugins.IPlugin.Param18
Get
Return _Param18
End Get
Set(ByVal value As String)
_Param18 = value
End Set
End Property
#End Region
' Paramètre numéro 19
#Region "Param19"
Private _Param19 As String = ""
Public Property Param19() As String Implements VelerSoftware.Plugins.IPlugin.Param19
Get
Return _Param19
End Get
Set(ByVal value As String)
_Param19 = value
End Set
End Property
#End Region
' Paramètre numéro 20
#Region "Param20"
Private _Param20 As String = ""
Public Property Param20() As String Implements VelerSoftware.Plugins.IPlugin.Param20
Get
Return _Param20
End Get
Set(ByVal value As String)
_Param20 = value
End Set
End Property
#End Region
Oui, ce code est assez long ! Passons en revue toutes les parties :
Region Name : Mettez le nom de la class de votre plugin hors ici : Mon_Plugin
Region Text : Mettez le texte qui sera affiché dans SZ
Region Sentence : La phrase qui sera afficher dans la colonne « Paramètre » une fois votre plugin inséré
Region Description : Mettez la description de votre plugin J
Region Category : Mettez ici la catégorie dans laquelle le plugin doit se trouver. Ici mettez « Ma Catégorie » Pour retrouver votre plugin rapidement
Region ToolBoxImage : L’image qui sera afficher dans SZ
Region FileCode : Entrer le nom du fichier xml que nous créerons après.
Region FileHelp : Le nom du fichier html que nous créerons après également
Vos fichiers sont maintenant terminés ! Retournons dans Form1.vb.
Double cliquez sur le bouton pour choisir le fichier à supprimer. Vous entrez dans la partie code.
Mettez :
If OpenF.leDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
TextBox1.Text = OpenFileDialog1.SelectFile
End If
Ici, on dit que si on affiche la boite de dialogue pour sélectionner le fichier, et que l’utilisateur clique sur Ok, alors on met dans TextBox1 le chemin du fichier sélectionner.
Dans le bouton qui servira de bouton Annuler, mettez :
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
Maintenant : Dans le bouton qui servira de bouton Ok pour inséré le plugin, nous allons définir la partie qui va changer dans le code qui sera dans le xml. C'est-à-dire dans notre cas, le fichier à supprimer
Dans le fichier xml, il y a :
- Une partie de code qui ne change jamais, en gros l’action de plugin
- Lapartie qui va varier, c'est-à-dire sur quoi va agir l’action
Donc, pour ce qui va varier nous allons utiliser une des variables définies plus tôt dans « Variable.vb »
En premier donc, Param1, puis Param2 etc…
Donc dans le bouton Ok, nous allons mettre :
Variable.Param1 = TextBox1.text
Me.DialogResult = System.Windows.Form.DialogResult.Ok
Me.Close
C'est-à-dire que la variable Param1 est égale au texte du TextBox, contenant le chemin du fichier à supprimer, et on retourne Ok à SZ qui va donc ajouter le plugin.
Dans Visual Studio, faites « Générer > Générer la solution »
C’est bon, vous avez fini votre dll !
Passons maintenant au fichier .xml, qui va donc contenir le code à effectuer.
Ouvrez votre créateur de site, faites Nouveau > Fichier XML, cela peut dépendre de votre logiciel. Dans le XML, mettez :
- Code:
Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(“{PARAM1}”)
Nous allons nous occuper seulement de la partie
Nous voyons donc Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile, c’est le code normal permettant de supprimer un fichier. Ce plugin fera toujours ça, il supprimera, donc pas besoins de spécifier quelque chose là dedans. Il y a ensuite entre les parenthèse (“{PARAM1}”). C’est en faite le nom du fichier à supprimer, ce sur quoi l’action va agir. C’est ce qui changera. Nous nous souvenons dans le bouton Ok que nous avons dit que la variable Param1 contenais le chemin du fichier à supprimer. Dans le code visual basic normal, on met le chemin du fichier entre parenthèses et guillemets, nous allons donc faire exactement pareil, sauf qu’au lieu de mettre le chemin entre les guillemets, nous allons mettre PARAM1 en MAJUSCULE Attention ! Ce qui est équivalent au chemin.
On enregistre le .xml AVEC LE NOM que vous lui avez donné dans la class et c’est bon !
Passons à la dernière partie, le html !
Ouvrez votre éditeur de site, créer un fichier html, et copier le contenu d'un des fichier html de ProgramFiles>Veler Software>SoftwareZator>Help>Plugins
Enregistrer le avec le nom que vous lui avez attribué dans la class
Changer le texte selon votre plugin ! Soyez assez précis sans être long : d’où le nom de « Aide rapide ».
Voilà ! Vous avez maintenant votre plugin ! Mais il reste encore une chose :
Votre fichier .xml, mettez le dans ProgramFiles > Veler Software > SoftwareZator > Sources
Votre fichier dll qui se trouve par defaut dans Mes Documents > Visual Studio > Project > VotrePlugin > Bin > Debug , mettez le dans :
ProgramFiles > Veler Software > SoftwareZator > Plugins
Et enfin, votre fichier html, mettez le dans
ProgramFiles > Veler Software > SoftwareZator > Help > Plugins
Et voilà ! vous avez votre plugin
Bonne chance à tous
Dernière édition par xav2303 le Mar 8 Déc 2009 - 11:55, édité 1 fois