'Custom button logic Powershell
I'm creating a script for silent installation of some applications, with a choice box! I also created a custom button, but I need help to create the button logic. I thank everyone!
Add-Type -AssemblyName System.Windows.Forms
$Form = New-Object System.Windows.Forms.Form
$Form.Text ='Softwares Padrão'
$Form.Width = 500
$Form.Height = 300
$Form.AutoSize = $true
$Painel = New-Object System.Windows.Forms.Panel
$Painel.Height = 200
$Painel.Width = 154
$Painel.Location = New-Object System.Drawing.Point(24,45)
$Painel.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#ffffff")
$CheckBox_Selec = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec.Text = "Selecionar Todos"
$CheckBox_Selec.Width = 200
$CheckBox_Selec.Height = 20
$CheckBox_Selec.AutoSize = $true
$CheckBox_Selec.Location = New-Object System.Drawing.Size(34, 20)
$CheckBox_Selec.Checked = $false
$Form.Controls.Add($CheckBox_Selec)
$CheckBox_Selec1 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec1.Text = "Winrar"
$CheckBox_Selec1.AutoSize = $true
$CheckBox_Selec1.Location = New-Object System.Drawing.Size(10, 10)
$CheckBox_Selec1.Checked = $false
$Form.Controls.Add($CheckBox_Selec1)
$CheckBox_Selec2 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec2.Text = "Java"
$CheckBox_Selec2.AutoSize = $true
$CheckBox_Selec2.Location = New-Object System.Drawing.Size(10, 30)
$CheckBox_Selec2.Checked = $false
$Form.Controls.Add($CheckBox_Selec2)
$CheckBox_Selec3 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec3.Text = "Adobe Reader"
$CheckBox_Selec3.AutoSize = $true
$CheckBox_Selec3.Location = New-Object System.Drawing.Size(10, 50)
$CheckBox_Selec3.Checked = $false
$Form.Controls.Add($CheckBox_Selec3)
$CheckBox_Selec4 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec4.Text = "Office 2013x32"
$CheckBox_Selec4.AutoSize = $true
$CheckBox_Selec4.Location = New-Object System.Drawing.Size(10, 70)
$CheckBox_Selec4.Checked = $false
$Form.Controls.Add($CheckBox_Selec4)
$CheckBox_Selec5 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec5.Text = "Google Chrome"
$CheckBox_Selec5.AutoSize = $true
$CheckBox_Selec5.Location = New-Object System.Drawing.Size(10, 90)
$CheckBox_Selec5.Checked = $false
$Form.Controls.Add($CheckBox_Selec5)
$CheckBox_Selec6 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec6.Text = "CutePdf"
$CheckBox_Selec6.AutoSize = $true
$CheckBox_Selec6.Location = New-Object System.Drawing.Size(10, 110)
$CheckBox_Selec6.Checked = $false
$Form.Controls.Add($CheckBox_Selec6)
$CheckBox_Selec7 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec7.Text = "Oracle11gx32"
$CheckBox_Selec7.AutoSize = $true
$CheckBox_Selec7.Location = New-Object System.Drawing.Size(10, 130)
$CheckBox_Selec7.Checked = $false
$Form.Controls.Add($CheckBox_Selec7)
$CheckBox_Selec8 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec8.Text = "Piramide"
$CheckBox_Selec8.AutoSize = $true
$CheckBox_Selec8.Location = New-Object System.Drawing.Size(10, 150)
$CheckBox_Selec8.Checked = $false
$Form.Controls.Add($CheckBox_Selec8)
$CheckBox_Selec9 = New-Object System.Windows.Forms.CheckBox
$CheckBox_Selec9.Text = "Rh3"
$CheckBox_Selec9.AutoSize = $true
$CheckBox_Selec9.Location = New-Object System.Drawing.Size(10, 170)
$CheckBox_Selec9.Checked = $false
$Form.Controls.Add($CheckBox_Selec9)
$Button1 = New-Object System.Windows.Forms.Button
$Button1.Text = "Instalar"
$Button1.AutoSize = $true
$Button1.Width = 60
$Button1.Height = 30
$Button1.Location = New-Object System.Drawing.Point(290,215)
$Button1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif', 10)
$Button1.Enabled = $false
$Form.Controls.Add($Button1)
$Form.controls.AddRange(@($Painel,$CheckBox_Selec,$Button1))
$Painel.controls.AddRange(@($CheckBox_Selec1,$CheckBox_Selec2,$CheckBox_Selec3,$CheckBox_Selec4,$CheckBox_Selec5,$CheckBox_Selec6,$CheckBox_Selec7,$CheckBox_Selec8,$CheckBox_Selec9))
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec1.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec2.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec3.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec4.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec5.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec6.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec7.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec8.Checked = $CheckBox_Selec.Checked})
$CheckBox_Selec.Add_CheckStateChanged({$CheckBox_Selec9.Checked = $CheckBox_Selec.Checked})
Function Test-AnyButtonCheked {
if (
$CheckBox_Selec.Checked -or
$CheckBox_Selec1.Checked -or
$CheckBox_Selec2.Checked -or
$CheckBox_Selec3.Checked -or
$CheckBox_Selec4.Checked -or
$CheckBox_Selec5.Checked -or
$CheckBox_Selec6.Checked -or
$CheckBox_Selec7.Checked -or
$CheckBox_Selec8.Checked -or
$CheckBox_Selec9.Checked
) {
$Button1.Enabled = $true
}
else {
$Button1.Enabled = $false
}
}
$CheckBox_Selec.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec1.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec2.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec3.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec4.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec5.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec6.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec7.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec8.Add_CheckedChanged( { Test-AnyButtonCheked})
$CheckBox_Selec9.Add_CheckedChanged( { Test-AnyButtonCheked})
[void] $Form.ShowDialog()
This is my structure, I know it's not in the best practices but it's running very well!
I would like to install the applications according to the checkbox chosen by the user! I would like to configure the button so that if the user selects, "install all" he will install all applications or just the chosen checkbox. Thank you for your help!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
