Özel bir Giriş Kutusu Oluşturma
Windows PowerShell 3,0 ve sonraki sürümlerde Microsoft .NET Framework form oluşturma özelliklerini kullanarak bir grafik özel giriş kutusunu komut dosyasına koyun.
Özel, grafik giriş kutusu oluşturma
aşağıdakileri kopyalayıp Windows PowerShell ıse 'ye yapıştırın ve sonra bir Windows PowerShell betiği (.ps1) olarak kaydedin.
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Data Entry Form'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,120)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)
$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,120)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Please enter the information in the space below:'
$form.Controls.Add($label)
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox)
$form.Topmost = $true
$form.Add_Shown({$textBox.Select()})
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$x = $textBox.Text
$x
}
betik iki .NET Framework sınıfı yükleyerek başlar: system. Drawing ve system. Windows. Forms. daha sonra .NET Framework sınıf sisteminin yeni bir örneğini başlatabilirsiniz. Windows. Forms. form; Bu, denetim eklemeye başlayabilmeniz için boş bir form veya pencere sağlar.
$form = New-Object System.Windows.Forms.Form
Form sınıfının bir örneğini oluşturduktan sonra, bu sınıfın üç özelliklerine değerler atayın.
Metinleri. Bu, pencerenin başlığı haline gelir.
Boyutla. Bu, formun piksel cinsinden boyutudur. Yukarıdaki komut dosyası, 200 piksel yüksekliğinde 300 piksel genişliğinde bir form oluşturur.
Başlangıçkonumu. Bu isteğe bağlı özellik, önceki betikte CenterScreen olarak ayarlanır. bu özelliği eklememezseniz, Windows form açıldığında bir konum seçer. Startingposition 'ı CenterScreen olarak ayarlayarak, formu her yüklediğinde ekranın ortasında otomatik olarak görüntüyorsunuz.
$form.Text = 'Data Entry Form'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
Sonra, formunuz için bir Tamam düğmesi oluşturun. Tamam düğmesinin boyutunu ve davranışını belirtin. Bu örnekte, düğme konumu formun en üst kenarından 120 piksel ve sol kenardan 75 piksel olur. Düğme yüksekliği 23 pikselden, düğme uzunluğu 75 piksel olur. betik, düğme davranışlarını belirlemede önceden tanımlı Windows Forms türlerini kullanır.
$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,120)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)
Benzer şekilde, bir iptal düğmesi oluşturursunuz. İptal düğmesi en üstten 120 pikselden, ancak pencerenin sol kenarından 150 pikselden oluşur.
$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,120)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)
Ardından, pencerede kullanıcıların sağlamasını istediğiniz bilgileri açıklayan etiket metnini girin.
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Please enter the information in the space below:'
$form.Controls.Add($label)
Kullanıcıların Etiket metninde tanımladığınız bilgileri sağlamasına imkan tanıyan denetimi (Bu örnekte, bir metin kutusu) ekleyin. Metin kutularının yanı sıra uygulayabileceğiniz birçok farklı denetim vardır; daha fazla denetim için bkz . System. Windows. Forms ad alanı.
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox)
Pencerenin üst diğer açık pencereleri ve iletişim kutularını açmasını zorlamak için en üstteki özelliği $true olarak ayarlayın.
$form.Topmost = $true
Daha sonra, formu etkinleştirmek için bu kod satırını ekleyin ve odağı oluşturduğunuz metin kutusuna ayarlayın.
$form.Add_Shown({$textBox.Select()})
Formu Windows göstermek için aşağıdaki kod satırını ekleyin.
$result = $form.ShowDialog()
son olarak, ıf bloğu içindeki kod, kullanıcılar metin kutusuna metin girdikten sonra formla ne yapılacağını Windows bildirir ve ardından tamam düğmesine tıklayın veya enter tuşuna basın.
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$x = $textBox.Text
$x
}