Outils pour utilisateurs

Outils du site


creation_de_formulaires_applications_gui

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

creation_de_formulaires_applications_gui [2018/08/21 21:07]
praxium créée
creation_de_formulaires_applications_gui [2018/08/22 20:30] (Version actuelle)
praxium
Ligne 1: Ligne 1:
 [[powershell|Retourner à l'​index de la section Powershell]] [[powershell|Retourner à l'​index de la section Powershell]]
 +
 +Si vous souhaitez développer une application Powershell interactive,​ le plus facile est de le faire via les formulaires.
 +
 +Il est tout à fait possible de créer des formulaires sous Powershell à la main mais cela s’avérera très vite fastidieux de devoir créer les labels, droplist, comboBox ainsi que tout le drawing qui va avec.
 +
 +Il existe un petit logiciel qui vous permet de faire cela de façon très simple, bien que les nouvelles versions de ce logiciel soient devenues payantes, je vous fournis ici la toute dernière version totalement légale et gratuite de ce logiciel qui est devenue difficilement trouvable sur Internet.
 +
 +Il s'agit du logiciel PrimalFormsCE,​ ce logiciel vous permettra de créer tout cela de façon rapide et efficace, vous pourrez également ensuite exporter votre formulaire directement en code Powershell ce qui vous permettra de scripter les actions que vous souhaitez attribuer à tous les objets de votre formulaire
 +
 +__Informations de base sur l’interface :__
 +  * Du côté gauche, vous avez à votre disposition tous les objets que vous pouvez utiliser, il suffit de cliquer & glisser les objets souhaités vers la zone du formulaire.
 +
 +  * Du côté droit vous trouverez toutes les propriétés & évènements que vous pouvez adapter pour chacun de vos objets tels que le nom, la couleur, la mise en forme, etc.
 +
 +  * La partie centrale est la zone de création de votre formulaire
 +
 +{{:​sapiens_primal_02.png?​400|}}
 +
 +**1.** Téléchargez et installer le logiciel : [[https://​drive.google.com/​file/​d/​1WC8hkOMXz-S7nXe-Nqpww2pPW47yFfCi/​view?​usp=sharing
 +|PrimalFormsCE 1.0.10.0]]
 +
 +**2.** Démarrez le logiciel via le raccourci qui aura été créé sur votre bureau « **PrimalForms** »
 +
 +**3.** Cliquez sur « **New** »
 +
 +{{:​sapiens_primal_01.png?​400|}}
 +
 +**4.** Pour l’exemple,​ j’ai glissé un objet « **button** » vers la zone de création pour lequel j’ai adapté ​
 +  * La couleur de fond (Champ BackColor) que j'ai défini sur **Maroon**
 +  * La couleur du texte (Champ ForeColor) que j'ai défini sur **ButtonHighlight**
 +  * Le texte (Champ Text) que j'ai adapté en **Bouton Start**
 +  * Le nom de l’objet (Champ Name) que j'ai adapté en **btn_Start**
 +
 +{{:​sapiens_primal_03.png?​400|}}
 +
 +Je ne peux que vous conseiller de bien penser à définir une nomenclature que vous respecterez pour tous vos objets car comme vous allez le voir, le code s’allongera très rapidement (même pour un simple bouton) et il deviendra très vite très difficile de vous y retrouver dans votre code si vous n’avez pas défini une règle de conduite pour votre nomenclature…
 +
 +  * L’événement de ce bouton : (Champ Click) en le nommant **handler_btn_Start_Click** ​
 +
 +{{:​sapiens_primal_04.png?​400|}}
 +
 +**5.** A présent, vous pouvez exporter votre formulaire vers du code powershell
 +  * Cliquez sur le bouton « Export Powershell »
 +  * Choisissez l’option « Export to clipboard »
 +
 +{{:​sapiens_primal_05.png?​400|}}
 +
 +**6.** Ouvrez à présent Powershell ISE
 +
 +{{:​sapiens_primal_06.png?​400|}}
 +
 +Powershell ISE est très pratique car il vous permet de coder et en même temps de tester votre script ou une partie de votre script.
 +
 +**7.** Collez le code précédemment exporté (ce simple code pour un bouton compte déjà 79 lignes, pas mal non ?)
 +  * Le bouton (**1**) de l’interface permet de lancer le script complet
 +  * Le bouton (**2**) de l’interface permet de lancer une partie du script seulement (il faudra l’avoir sélectionnée au préalable)
 +  * Vous pouvez constater que PrimalFormsCE indique en commentaire les endroits où vous devez placer votre code, vos scripts, etc.
 +  * Ici pour notre unique objet qui est le bouton (**3**) vous devrez pour attribuer une action a ce bouton, placer votre code entre les 2 accolades en dessous du commentaire « **#TODO: Place custom script here** »
 +
 +{{:​sapiens_primal_07.png?​400|}}
 +
 +  * Par exemple vous pourriez mettre ceci comme action : **$command = cmd.exe /C "​notepad.exe"​**
 +
 +{{:​sapiens_primal_08.png?​400|}}
 +
 +**8.** Ensuite, lancez le script complètement depuis Powershell ISE via le bouton "​Play"​ (**1**) comme expliqué ci-dessus au point **7** pour le tester.
 +
 +Le résultat devrait vous afficher le formulaire et lancer Notepad lorsque vous aurez cliquer sur le bouton de votre formulaire 😊
 +
 +Je vous laisse a vos codes et votre imagination,​ bon amusement !
 +
 +Vous trouverez ci-dessous le code complet expliqué précédemment afin de tester.
 +
 +<​code>​
 +#Generated Form Function
 +function GenerateForm {
 +########################################################################​
 +# Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.10.0
 +# Generated On: 21-08-18 20:53
 +# Generated By: Praxium
 +########################################################################​
 +
 +#region Import the Assemblies
 +[reflection.assembly]::​loadwithpartialname("​System.Windows.Forms"​) | Out-Null
 +[reflection.assembly]::​loadwithpartialname("​System.Drawing"​) | Out-Null
 +#endregion
 +
 +#region Generated Form Objects
 +$form1 = New-Object System.Windows.Forms.Form
 +$btn_Start = New-Object System.Windows.Forms.Button
 +$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
 +#endregion Generated Form Objects
 +
 +#​----------------------------------------------
 +#Generated Event Script Blocks
 +#​----------------------------------------------
 +#Provide Custom Code for events specified in PrimalForms.
 +$handler_btn_Start_Click= ​
 +{
 +#TODO: Place custom script here
 +$command = cmd.exe /C "​notepad.exe"​
 +}
 +
 +$OnLoadForm_StateCorrection=
 +{#Correct the initial state of the form to prevent the .Net maximized form issue
 + $form1.WindowState = $InitialFormWindowState
 +}
 +
 +#​----------------------------------------------
 +#region Generated Form Code
 +$System_Drawing_Size = New-Object System.Drawing.Size
 +$System_Drawing_Size.Height = 261
 +$System_Drawing_Size.Width = 284
 +$form1.ClientSize = $System_Drawing_Size
 +$form1.DataBindings.DefaultDataSourceUpdateMode = 0
 +$form1.Name = "​form1"​
 +$form1.Text = "Mon Formulaire"​
 +
 +$btn_Start.BackColor = [System.Drawing.Color]::​FromArgb(255,​128,​0,​0)
 +
 +$btn_Start.DataBindings.DefaultDataSourceUpdateMode = 0
 +$btn_Start.Font = New-Object System.Drawing.Font("​Microsoft Sans Serif",​8.25,​1,​3,​0)
 +$btn_Start.ForeColor = [System.Drawing.Color]::​FromArgb(255,​255,​255,​255)
 +
 +$System_Drawing_Point = New-Object System.Drawing.Point
 +$System_Drawing_Point.X = 89
 +$System_Drawing_Point.Y = 109
 +$btn_Start.Location = $System_Drawing_Point
 +$btn_Start.Name = "​btn_Start"​
 +$System_Drawing_Size = New-Object System.Drawing.Size
 +$System_Drawing_Size.Height = 23
 +$System_Drawing_Size.Width = 110
 +$btn_Start.Size = $System_Drawing_Size
 +$btn_Start.TabIndex = 0
 +$btn_Start.Text = "​Bouton Start"
 +$btn_Start.UseVisualStyleBackColor = $False
 +$btn_Start.add_Click($handler_btn_Start_Click)
 +
 +$form1.Controls.Add($btn_Start)
 +
 +#endregion Generated Form Code
 +
 +#Save the initial state of the form
 +$InitialFormWindowState = $form1.WindowState
 +#Init the OnLoad event to correct the initial state of the form
 +$form1.add_Load($OnLoadForm_StateCorrection)
 +#Show the Form
 +$form1.ShowDialog()| Out-Null
 +
 +} #End Function
 +
 +#Call the Function
 +GenerateForm
 +</​code>​
creation_de_formulaires_applications_gui.txt · Dernière modification: 2018/08/22 20:30 par praxium