Here's something to get you going.
#Add Assembly
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
#Add Form
$Form = New-Object System.Windows.Forms.Form
$Form.Text = "Data Backup - Incrimental"
$Form.Size = New-Object System.Drawing.Size(400,400)
$initialDirectory = ""
$Sourcefolder = ""
$Destfolder = ""
#Add Function for Source Button
Function Get-Folder($initialDirectory="")
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null
$foldername = New-Object System.Windows.Forms.FolderBrowserDialog
$foldername.Description = "Select Source Folder"
$foldername.rootfolder = "MyComputer"
$foldername.SelectedPath = $initialDirectory
if($foldername.ShowDialog() -eq "OK")
{
$folder += $foldername.SelectedPath
}
return $folder
}
#$SourceFolder = Get-Folder # this was the statement that was showing the "wrong" dialog
#Add Source Button
$SFB = New-Object System.Windows.Forms.Button
$SFB.Size = New-Object System.Drawing.Size(150,30)
$SFB.Location = New-Object System.Drawing.Size(20,20)
$SFB.Text = "Select Source Folder"
$SFB.Add_Click({
$script:SourceFolder = Get-Folder
$LSF.Text = "$SourceFolder"
$count = $output.items.add("Source folder set to: $Sourcefolder")
})
$Form.Controls.Add($SFB)
#Add Label of Source Location
$LSF = New-Object System.Windows.Forms.Label
$LSF.Location = New-Object System.Drawing.Size(180,30)
$LSF.BackColor = "Transparent"
$LSF.AutoSize = $true
$LSF.Text = "$SourceFolder"
$Form.Controls.Add($LSF)
#Add Function for Destination Button
[void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
$browse1 = new-object system.windows.Forms.FolderBrowserDialog
$browse1.RootFolder = 'MyComputer'
$browse1.ShowNewFolderButton = $false
$browse1.Description = "Select Destination Folder"
#Add Destination Button
$SDB = New-Object System.Windows.Forms.Button
$SDB.Size = New-Object System.Drawing.Size(150,30)
$SDB.Location = New-Object System.Drawing.Size(20,70)
$SDB.Text = "Select Destination Folder"
$SDB.Add_Click({
$script:DestFolder = Get-Folder($initialdirectory="c:\temp")
$LDF.Text = "$DestFolder"
$output.items.add("Dest folder set to: $destfolder")
})
$Form.Controls.Add($SDB)
#Add Lable of Dedtination Location
$LDF = New-Object System.Windows.Forms.Label
$LDF.Location = New-Object System.Drawing.Size(180,80)
$LDF.BackColor = "Transparent"
$LDF.AutoSize = $true
$LDF.Text = "Muhammad Anwar"
$Form.Controls.Add($LDF)
#Add Output Screen
$Output = New-Object System.Windows.Forms.Listbox
$Output.Location = New-Object System.Drawing.Size(20,140)
$Output.Size = New-Object System.Drawing.Size(350,200)
#$Output.Multiline = $true
#$Output.ScrollBars = "Vertical"
$count = $Output.items.add("Please select both source and destination folders.")
$Form.Controls.Add($Output)
$Form.ShowDialog()
"Now go process these folders!"
"Source folder: $sourcefolder"
"Dest folder : $destfolder"