Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek yalnızca Windows platformları için geçerlidir.
Microsoft .NET Framework form oluşturma özelliklerini kullanarak, Windows PowerShell 3.0 ve sonraki sürümlerinde grafik bir özel giriş kutusu betiği hazırlayın.
Özel, grafik giriş kutusu oluşturma
Aşağıdakini kopyalayıp Windows PowerShell ISE'ye yapıştırın ve powershell betiği (.ps1) dosyası 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. Ardından System.Windows.Forms.Form .NET Framework sınıfının yeni bir örneğini başlatırsınız. Bu, denetim eklemeye başlayabileceğiniz 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, değerleri bu sınıfın üç özelliğine atayın.
- Metin. Bu, pencerenin başlığı olur.
- Boyut. Bu, formun piksel cinsinden boyutudur. Yukarıdaki betik, 300 piksel genişliğinde ve 200 piksel uzunluğunda bir form oluşturur.
- Başlangıç Pozisyonu. Bu isteğe bağlı özellik, önceki betikte CenterScreen olarak ayarlanır. Bu özelliği eklemezseniz, Form açıldığında Windows bir konum seçer. StartingPosition'i CenterScreenolarak ayarladığınızda, form her yüklendiğinde otomatik olarak ekranın ortasında görüntülenir.
$form.Text = 'Data Entry Form'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
Ardından formunuz için bir Tamam düğmesi oluşturun. Tamam düğmesinin boyutunu ve davranışını belirtin. Bu örnekte düğme konumu formun üst kenarından 120 piksel ve sol kenardan 75 pikseldir. Düğme yüksekliği 23 piksel, düğme uzunluğu ise 75 pikseldir. Betik, düğme davranışlarını belirlemek için önceden tanımlanmış 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 İptal düğmesi oluşturursunuz. İptal düğmesi üstten 120 piksel, pencerenin sol kenarından 150 pikseldir.
$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, pencerenizde kullanıcıların sağlamasını istediğiniz bilgileri açıklayan etiket metni sağlayın.
$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 metninizde açıkladığınız bilgileri sağlamasına olanak tanıyan denetimi (bu örnekte bir metin kutusu) ekleyin. Metin kutularının yanı sıra uygulayabileceğiniz birçok denetim daha 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)
En üstteki özelliğini $true olarak ayarlayarak pencereyi diğer açık pencerelerin ve iletişim kutularının üzerinde açmaya zorlayabilirsiniz.
$form.Topmost = $true
Ardından, 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'da görüntülemek için aşağıdaki kod satırını ekleyin.
$result = $form.ShowDialog()
Sonunda, if bloğunun içindeki kod, kullanıcılar metin kutusuna metin girdikten sonra, Windows'un formla ne yapacağını belirtir ve ardından Tamam düğmesine tıklar veya Enter tuşuna basar.
if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
$x = $textBox.Text
$x
}
Ayrıca bkz.
PowerShell