2016-04-29 9 views
0

初めてセットアップアプリケーションの次のステップを決定するGUIを設定します。私はもともとバッチを使用して全体をプログラムしましたが、よりユーザーフレンドリーな外観を望みました。このプログラムは、基本的に、コンピュータメーカーがコンピュータにロードし、いくつかの有用なプログラムをインストールするbloatwareをアンインストールします。 PowerShellを初めて使用しました。彼らは「もちろん」をクリックした場合PowershellのGUI変数

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "Pauk Inc." 
$objForm.Size = New-Object System.Drawing.Size(300,175) 
$objForm.StartPosition = "CenterScreen" 

$objForm.KeyPreview = $True 
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter") 
{$x=$objTextBox.Text;$objForm.Close()}}) 
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape") 
{$objForm.Close()}}) 

$YesButton = New-Object System.Windows.Forms.Button 
$YesButton.Location = New-Object System.Drawing.Size(70,95) 
$YesButton.Size = New-Object System.Drawing.Size(75,23) 
$YesButton.Text = "Sure" 
$YesButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()}) 
$objForm.Controls.Add($YesButton) 

$NoButton = New-Object System.Windows.Forms.Button 
$NoButton.Location = New-Object System.Drawing.Size(155,95) 
$NoButton.Size = New-Object System.Drawing.Size(75,23) 
$NoButton.Text = "No Thanks" 
$NoButton.Add_Click({$objForm.Close()}) 
$objForm.Controls.Add($NoButton) 

$objLabel = New-Object System.Windows.Forms.Label 
$objLabel.Location = New-Object System.Drawing.Size(55,50) 
$objLabel.Size = New-Object System.Drawing.Size(280,25) 
$objLabel.Text = "Would you like to install Anti Virus?" 
$objForm.Controls.Add($objLabel) 

$objForm.Topmost = $True 

$objForm.Add_Shown({$objForm.Activate()}) 
[void] $objForm.ShowDialog() 

$x 

は基本的に私は何を探していますがAVをインストールしている、と彼らは「いいえおかげ」をクリックしていないしていない場合:これは私がこれまで持っているものです。

+0

わかりましたので、どうしたらよいですか?どこにこだわっていますか?あなたは何を試してみましたか?結果は何でしたか? – techie007

+0

さて、バットで質問をすることができます。 'echo続行しますか? (yまたはn) ' ' set p/answer = ' と人のタイプがプログラムに次に何をするかを知らせます。 '%answer%== y goto yes' '%answer%== n goto no' PowerShellとyまたはnと入力するのではなく、ボタンをクリックする以外は、同じことをします。 –

答えて

0

これは、Windowsフォームアプリケーションと同様に行うことができます。ボタンにDialogResultを設定していないため、ボタンをクリックしてもボタンを区別することはできません。ただ、これで最後の行を置き換える:

$YesButton.DialogResult = [System.Windows.Forms.DialogResult]::OK 
$result = $objForm.ShowDialog() 

if ($result -eq [System.Windows.Forms.DialogResult]::OK) { 
    Write-Host "Installing..." 
} 
2

をあなただけのはい/いいえ応答後にしている場合は、メッセージボックスは、はるかに少ないコードを必要とします。

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

[System.Windows.Forms.DialogResult]$result = [System.Windows.Forms.MessageBox]::Show("Would you like to install anti-virus?", "Install Anti-Virus?", [System.Windows.Forms.MessageBoxButtons]::YesNo, [System.Windows.Forms.MessageBoxIcon]::Question, [System.Windows.Forms.MessageBoxDefaultButton]::Button2) 

if ($result -eq ([System.Windows.Forms.DialogResult]::Yes)) 
{ 
    # User selected yes. 
} 
else 
{ 
    # User selected no. 
} 
+0

私が探している結果は、GUIで実行されているプログラム全体です。だから、PowerShellコマンドの使い方を理解したら、そのボックスのサイズを拡大し、色や可能な限り小さいアニメーション(パーセントの棒など)を追加する予定です。私はあなたにちょっとした感覚を覚えています。あなたの提出ありがとうございます。 –