Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Add-Type -AssemblyName System.Windows.Forms
- Add-Type -AssemblyName System.Drawing
- $ConfigFile = "config.json"
- $form = New-Object System.Windows.Forms.Form
- $colorDialog = New-Object System.Windows.Forms.ColorDialog
- $form.Text = "Ma fenêtre"
- $form.Width = 600
- $form.Height = 400
- $form.StartPosition = "CenterScreen"
- $form.FormBorderStyle = "Sizable"
- $form.MaximizeBox = $false
- # Charge la position et la taille du formulaire à partir du fichier de configuration
- function Load-FormDimensions {
- if (Test-Path $ConfigFile) {
- $config = Get-Content $ConfigFile | ConvertFrom-Json
- $form.Width = $config.width
- $form.Height = $config.height
- $form.BackColor = [System.Drawing.Color]::FromArgb($config.color.A, $config.color.R, $config.color.G, $config.color.B)
- $form.Location = New-Object System.Drawing.Point($config.position.x, $config.position.y)
- }
- }
- # Sauvegarde la position et la taille du formulaire dans le fichier de configuration
- function Save-FormDimensions {
- $config = @{
- width = $form.Width
- height = $form.Height
- color = @{
- A = $form.BackColor.A
- R = $form.BackColor.R
- G = $form.BackColor.G
- B = $form.BackColor.B
- }
- position = @{
- x = $form.Location.X
- y = $form.Location.Y
- }
- } | ConvertTo-Json
- $config | Out-File $ConfigFile
- }
- # Charge la position et la taille du formulaire au démarrage
- $timer = New-Object System.Windows.Forms.Timer
- $timer.Interval = 500
- $timer.Add_Tick({
- Load-FormDimensions
- $timer.Stop()
- })
- $timer.Start()
- $timer2 = New-Object System.Windows.Forms.Timer
- $timer2.Interval = 1000
- $timer2.Add_Tick({
- # Sauvegarde la position et la couleur lorsque la couleur de fond est modifiée
- $handler_BackColorChanged = {
- Save-FormDimensions
- }
- $form.Add_BackColorChanged($handler_BackColorChanged)
- # Sauvegarde la position et la taille lorsque le formulaire est redimensionné
- $handler_ResizeEnd = {
- Save-FormDimensions
- }
- $form.Add_ResizeEnd($handler_ResizeEnd)
- # Sauvegarde la position et la taille lorsque le formulaire est déplacé
- $handler_Move = {
- Save-FormDimensions
- }
- $form.Add_Move($handler_Move)
- $timer2.Stop()
- })
- $timer2.Start()
- # Bouton pour ouvrir la palette de couleurs
- $paletteButton = New-Object System.Windows.Forms.Button
- $paletteButton.Text = "Palette"
- $paletteButton.Location = New-Object System.Drawing.Point(($form.Width - $paletteButton.Width - 10), 10)
- $paletteButton.Anchor = [System.Windows.Forms.AnchorStyles]::Right
- $paletteButton.Add_Click({
- $result = $colorDialog.ShowDialog()
- if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
- $form.BackColor = $colorDialog.Color
- }
- })
- $form.Controls.Add($paletteButton)
- $form.ShowDialog() | Out-Null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement