Quote: Originally posted by ethanl on Apr 28, 2025
write a tool and have fun



the code
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# Create Form
$form = New-Object System.Windows.Forms.Form
$form.Text = "Lotto Number Picker Tool"
$form.Size = New-Object System.Drawing.Size(450,450)
$form.StartPosition = "CenterScreen"
$form.BackColor = 'WhiteSmoke'
# Create TabControl
$tabControl = New-Object System.Windows.Forms.TabControl
$tabControl.Size = New-Object System.Drawing.Size(430,370)
$tabControl.Location = New-Object System.Drawing.Point(10,10)
# Create Tabs
$tabQuickPick = New-Object System.Windows.Forms.TabPage
$tabQuickPick.Text = "Quick Pick"
$tabFixedPick = New-Object System.Windows.Forms.TabPage
$tabFixedPick.Text = "Fixed Pick"
$tabLuckyPick = New-Object System.Windows.Forms.TabPage
$tabLuckyPick.Text = "Lucky Pick"
$tabControl.TabPages.AddRange(@($tabQuickPick,$tabFixedPick,$tabLuckyPick))
# ================= QUICK PICK TAB =================
$quickPickButton = New-Object System.Windows.Forms.Button
$quickPickButton.Text = "Generate Quick Pick"
$quickPickButton.Size = New-Object System.Drawing.Size(200,40)
$quickPickButton.Location = New-Object System.Drawing.Point(100,30)
$quickPickResult = New-Object System.Windows.Forms.TextBox
$quickPickResult.Size = New-Object System.Drawing.Size(350,30)
$quickPickResult.Location = New-Object System.Drawing.Point(40,90)
$quickPickResult.ReadOnly = $true
$quickPickResult.TextAlign = 'Center'
$quickPickResult.BackColor = 'LightYellow'
$copyQuickPick = New-Object System.Windows.Forms.Button
$copyQuickPick.Text = "Copy to Clipboard"
$copyQuickPick.Size = New-Object System.Drawing.Size(150,30)
$copyQuickPick.Location = New-Object System.Drawing.Point(130,140)
$quickPickButton.Add_Click({
$numbers = 1..49 | Get-Random -Count 6 | Sort-Object
$quickPickResult.Text = ($numbers -join ", ")
})
$copyQuickPick.Add_Click({
if ($quickPickResult.Text) { [System.Windows.Forms.Clipboard]::SetText($quickPickResult.Text) }
})
$tabQuickPick.Controls.AddRange(@($quickPickButton,$quickPickResult,$copyQuickPick))
# ================= FIXED PICK TAB =================
$fixedPickButton = New-Object System.Windows.Forms.Button
$fixedPickButton.Text = "Generate 16 & Pick 6"
$fixedPickButton.Size = New-Object System.Drawing.Size(200,40)
$fixedPickButton.Location = New-Object System.Drawing.Point(100,20)
$fixedPick16Numbers = New-Object System.Windows.Forms.TextBox
$fixedPick16Numbers.Size = New-Object System.Drawing.Size(370,30)
$fixedPick16Numbers.Location = New-Object System.Drawing.Point(30,80)
$fixedPick16Numbers.ReadOnly = $true
$fixedPick16Numbers.BackColor = 'LightCyan'
$fixedPick16Numbers.TextAlign = 'Center'
$fixedPick6Numbers = New-Object System.Windows.Forms.TextBox
$fixedPick6Numbers.Size = New-Object System.Drawing.Size(370,30)
$fixedPick6Numbers.Location = New-Object System.Drawing.Point(30,120)
$fixedPick6Numbers.ReadOnly = $true
$fixedPick6Numbers.BackColor = 'LightYellow'
$fixedPick6Numbers.TextAlign = 'Center'
$new6Button = New-Object System.Windows.Forms.Button
$new6Button.Text = "Pick New 6 Numbers"
$new6Button.Size = New-Object System.Drawing.Size(200,30)
$new6Button.Location = New-Object System.Drawing.Point(100,170)
$copyFixedPick = New-Object System.Windows.Forms.Button
$copyFixedPick.Text = "Copy Picked 6"
$copyFixedPick.Size = New-Object System.Drawing.Size(150,30)
$copyFixedPick.Location = New-Object System.Drawing.Point(140,220)
$global:storedSixteenNumbers = @()
$fixedPickButton.Add_Click({
$global:storedSixteenNumbers = 1..49 | Get-Random -Count 16 | Sort-Object
$pick6From16 = $global:storedSixteenNumbers | Get-Random -Count 6 | Sort-Object
$fixedPick16Numbers.Text = "16 Numbers: " + ($global:storedSixteenNumbers -join ", ")
$fixedPick6Numbers.Text = "Picked 6: " + ($pick6From16 -join ", ")
})
$new6Button.Add_Click({
if ($global:storedSixteenNumbers.Count -eq 16) {
$pick6From16 = $global:storedSixteenNumbers | Get-Random -Count 6 | Sort-Object
$fixedPick6Numbers.Text = "Picked 6: " + ($pick6From16 -join ", ")
}
else {
[System.Windows.Forms.MessageBox]::Show("Please generate 16 numbers first.")
}
})
$copyFixedPick.Add_Click({
if ($fixedPick6Numbers.Text) { [System.Windows.Forms.Clipboard]::SetText($fixedPick6Numbers.Text) }
})
$tabFixedPick.Controls.AddRange(@($fixedPickButton,$fixedPick16Numbers,$fixedPick6Numbers,$new6Button,$copyFixedPick))
# ================= LUCKY PICK TAB =================
$luckyPickLabel = New-Object System.Windows.Forms.Label
$luckyPickLabel.Text = "Enter lucky numbers (1-49), comma-separated:"
$luckyPickLabel.Location = New-Object System.Drawing.Point(30,20)
$luckyPickLabel.Size = New-Object System.Drawing.Size(350,20)
$luckyPickInput = New-Object System.Windows.Forms.TextBox
$luckyPickInput.Size = New-Object System.Drawing.Size(370,30)
$luckyPickInput.Location = New-Object System.Drawing.Point(30,50)
$luckyPickButton = New-Object System.Windows.Forms.Button
$luckyPickButton.Text = "Generate Lucky Pick"
$luckyPickButton.Size = New-Object System.Drawing.Size(200,40)
$luckyPickButton.Location = New-Object System.Drawing.Point(100,100)
$luckyPickResult = New-Object System.Windows.Forms.TextBox
$luckyPickResult.Size = New-Object System.Drawing.Size(370,30)
$luckyPickResult.Location = New-Object System.Drawing.Point(30,160)
$luckyPickResult.ReadOnly = $true
$luckyPickResult.BackColor = 'LightYellow'
$luckyPickResult.TextAlign = 'Center'
$copyLuckyPick = New-Object System.Windows.Forms.Button
$copyLuckyPick.Text = "Copy Lucky Pick"
$copyLuckyPick.Size = New-Object System.Drawing.Size(150,30)
$copyLuckyPick.Location = New-Object System.Drawing.Point(140,210)
$luckyPickButton.Add_Click({
$luckyNumbers = $luckyPickInput.Text -split "," | ForEach-Object { $_.Trim() } | Where-Object { $_ -match '^\d+$' } | ForEach-Object { [int]$_ }
$luckyNumbers = $luckyNumbers | Where-Object { $_ -ge 1 -and $_ -le 49 }
$remaining = 6 - $luckyNumbers.Count
if ($remaining -lt 0) {
[System.Windows.Forms.MessageBox]::Show("Please enter at most 6 numbers.")
}
else {
$randomNumbers = (1..49 | Where-Object { $luckyNumbers -notcontains $_ } | Get-Random -Count $remaining)
$finalNumbers = ($luckyNumbers + $randomNumbers) | Sort-Object
$luckyPickResult.Text = ($finalNumbers -join ", ")
}
})
$copyLuckyPick.Add_Click({
if ($luckyPickResult.Text) { [System.Windows.Forms.Clipboard]::SetText($luckyPickResult.Text) }
})
$tabLuckyPick.Controls.AddRange(@($luckyPickLabel,$luckyPickInput,$luckyPickButton,$luckyPickResult,$copyLuckyPick))
# ================= FINALIZE FORM =================
$form.Controls.Add($tabControl)
$form.Topmost = $true
$form.Add_Shown({$form.Activate()})
[void]$form.ShowDialog()