885 lines
		
	
	
		
			No EOL
		
	
	
		
			74 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			885 lines
		
	
	
		
			No EOL
		
	
	
		
			74 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| #region file function
 | ||
| function OpenFile {
 | ||
| $Status.Text = "Выберите файл"
 | ||
| $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
 | ||
| $OpenFileDialog.Filter = "All Files (*.*)|*.*"
 | ||
| $OpenFileDialog.InitialDirectory = ".\"
 | ||
| $OpenFileDialog.Title = "Выберите файл"
 | ||
| $OpenFileDialog.ShowDialog() # открыть файл
 | ||
| $path_save = $OpenFileDialog.FileNames # забрать путь к файлу
 | ||
| $Status.Text = "Выбран файл: $path_save"
 | ||
| }
 | ||
| 
 | ||
| function SaveFile {
 | ||
| $Status.Text = "Сохранение файла"
 | ||
| $SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
 | ||
| $SaveFileDialog.Filter = "All Files (*.txt)|*.txt"
 | ||
| $SaveFileDialog.FileName = "test" # предустановленное имя файла
 | ||
| $SaveFileDialog.InitialDirectory = "$env:USERPROFILE\desktop\"
 | ||
| $SaveFileDialog.Title = "Выберите файл"
 | ||
| $SaveFileDialog.ShowDialog()
 | ||
| $path_out = $SaveFileDialog.FileNames # забрать путь к файлу
 | ||
| $Status.Text = "Файл сохранен: $path_out"
 | ||
| }
 | ||
| #endregion
 | ||
| 
 | ||
| #region favicon.cc
 | ||
| Add-Type -assembly System.Drawing # добавить сборку для подключения иконок
 | ||
| 
 | ||
| $bmp = New-Object System.Drawing.Bitmap(16,16)
 | ||
| $g = [System.Drawing.Graphics]::FromImage($bmp)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,0,0,15,0)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,15,0,15,4)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,15,4,10,4)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,10,4,10,15)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,10,15,6,15)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,6,15,6,4)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,6,4,0,4)
 | ||
| $g.drawline([System.Drawing.Pens]::Black,0,4,0,0)
 | ||
| $g.drawline([System.Drawing.Pens]::Blue,1,1,14,1)
 | ||
| $g.drawline([System.Drawing.Pens]::Blue,1,2,14,2)
 | ||
| $g.drawline([System.Drawing.Pens]::Blue,1,3,14,3)
 | ||
| $g.drawline([System.Drawing.Pens]::Blue,7,4,7,14)
 | ||
| $g.drawline([System.Drawing.Pens]::Blue,8,4,8,14)
 | ||
| $g.drawline([System.Drawing.Pens]::Blue,9,4,9,14)
 | ||
| $ico = [System.Drawing.Icon]::FromHandle($bmp.GetHicon())
 | ||
| #endregion
 | ||
| 
 | ||
| #region main_form
 | ||
| Add-Type -assembly System.Windows.Forms # подключить сборку формы .NET
 | ||
| 
 | ||
| $main_form = New-Object System.Windows.Forms.Form
 | ||
| $main_form.Text ="WinForms Test Stend"
 | ||
| $main_form.Width = 1120 # ширина
 | ||
| $main_form.Height = 710 # высота
 | ||
| $main_form.AutoSize = $false
 | ||
| 
 | ||
| $main_form.StartPosition = "CenterScreen" # стартовая позиция расположения формы при открытии
 | ||
| #$main_form.ShowIcon = $False # скрыть иконку
 | ||
| #$main_form.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon('C:\Users\lifailon\desktop\favicon.cc.ico')
 | ||
| $main_form.Icon = $ico # назначить favicon для формы
 | ||
| $main_form.FormBorderStyle = "FixedSingle" # запретить растягивать
 | ||
| 
 | ||
| $Label = New-Object System.Windows.Forms.Label
 | ||
| $Label.Text = "Label"
 | ||
| $Label.Location = New-Object System.Drawing.Point(10,30)
 | ||
| $Label.AutoSize = $true
 | ||
| $main_form.Controls.Add($Label)
 | ||
| 
 | ||
| $CheckBox = New-Object System.Windows.Forms.CheckBox
 | ||
| $CheckBox.Text = "CheckBox"
 | ||
| $CheckBox.AutoSize = $true
 | ||
| $CheckBox.Checked = $true
 | ||
| $CheckBox.Location = New-Object System.Drawing.Point(10,50)
 | ||
| $main_form.Controls.Add($CheckBox)
 | ||
| 
 | ||
| $button = New-Object System.Windows.Forms.Button
 | ||
| $button.Text = "КНОПКА"
 | ||
| $button.Location = New-Object System.Drawing.Point(160,35)
 | ||
| $button.FlatAppearance.BorderSize = 0
 | ||
| $button.FlatStyle = "Flat"
 | ||
| #$button.BackColor = "Tansparent"
 | ||
| #Checked Back Color = "Transparent"
 | ||
| #Mouse Down Back Color = "Transparent"
 | ||
| #Mouse Over Back Color = "Transparent"
 | ||
| $main_form.Controls.Add($button)
 | ||
| 
 | ||
| $RadioButton = New-Object System.Windows.Forms.RadioButton
 | ||
| $RadioButton.Location  = New-Object System.Drawing.Point(160,65)
 | ||
| $RadioButton.Text = "RadioButton-1"
 | ||
| $RadioButton.AutoSize = $true
 | ||
| $main_form.Controls.Add($RadioButton)
 | ||
| 
 | ||
| $RadioButton_2 = New-Object System.Windows.Forms.RadioButton
 | ||
| $RadioButton_2.Location  = New-Object System.Drawing.Point(260,65)
 | ||
| $RadioButton_2.Text = "RadioButton-2"
 | ||
| $RadioButton_2.AutoSize = $true
 | ||
| $RadioButton_2.Checked = $true
 | ||
| $main_form.Controls.Add($RadioButton_2)
 | ||
| 
 | ||
| $ComboBox = New-Object System.Windows.Forms.ComboBox
 | ||
| $ComboBox.DataSource = @("ComboBox1","ComboBox2","ComboBox3")
 | ||
| $ComboBox.Location  = New-Object System.Drawing.Point(10,70)
 | ||
| $main_form.Controls.Add($ComboBox)
 | ||
| 
 | ||
| $CheckedListBox = New-Object System.Windows.Forms.CheckedListBox
 | ||
| $CheckedListBox.Items.ADD("CheckedListBox")
 | ||
| $CheckedListBox.Items.ADD("Items 2")
 | ||
| $CheckedListBox.Items.ADD("3")
 | ||
| $CheckedListBox.Location  = New-Object System.Drawing.Point(10,100)
 | ||
| $main_form.Controls.Add($CheckedListBox)
 | ||
| 
 | ||
| $GroupBox = New-Object System.Windows.Forms.GroupBox
 | ||
| $GroupBox.Text = "GroupBox"
 | ||
| $GroupBox.AutoSize = $true
 | ||
| $GroupBox.Location  = New-Object System.Drawing.Point(160,95)
 | ||
| $button2 = New-Object System.Windows.Forms.Button
 | ||
| $button2.Text = "Кнопка 2"
 | ||
| $button2.Location = New-Object System.Drawing.Point(0,30)
 | ||
| $GroupBox.Controls.Add($button2) # добавить на GroupBox
 | ||
| $CheckBox2 = New-Object System.Windows.Forms.CheckBox
 | ||
| $CheckBox2.Text = "CheckBox2"
 | ||
| $CheckBox2.AutoSize = $true
 | ||
| $CheckBox2.Checked = $true
 | ||
| $CheckBox2.Location  = New-Object System.Drawing.Point(10,60)
 | ||
| $GroupBox.Controls.Add($CheckBox2)
 | ||
| $main_form.Controls.Add($GroupBox) # добавить GroupBox на форму
 | ||
| 
 | ||
| $ListBox = New-Object System.Windows.Forms.ListBox
 | ||
| $ListBox.Location  = New-Object System.Drawing.Point(10,210)
 | ||
| $ListBox.Items.Add('ListBox');
 | ||
| $ListBox.Items.Add('2');
 | ||
| $ListBox.Items.Add('3');
 | ||
| $main_form.Controls.add($ListBox)
 | ||
| 
 | ||
| $TabControl = New-Object System.Windows.Forms.TabControl
 | ||
| $TabControl.Location  = New-Object System.Drawing.Point(160,210)
 | ||
| $TabPage1 = New-Object System.Windows.Forms.TabPage
 | ||
| $TabPage1.Text = 'TabPage1'
 | ||
| $TabControl.Controls.Add($TabPage1)
 | ||
| 
 | ||
| # Добавить Label на TabPage1
 | ||
| $TabLabel = New-Object System.Windows.Forms.Label
 | ||
| $TabLabel.Text = "TabControl"
 | ||
| $TabLabel.Location  = New-Object System.Drawing.Point(60,30)
 | ||
| $TabLabel.AutoSize = $true
 | ||
| $TabPage1.Controls.Add($TabLabel)
 | ||
| 
 | ||
| $TabPage2 = New-Object System.Windows.Forms.TabPage
 | ||
| $TabPage2.Text = 'TabPage2'
 | ||
| $TabControl.Controls.Add($TabPage2)
 | ||
| 
 | ||
| $main_form.Controls.add($TabControl)
 | ||
| 
 | ||
| $ListView = New-Object System.Windows.Forms.ListView
 | ||
| $ListViewItem1 = New-Object System.Windows.Forms.ListViewItem("--=1=--")
 | ||
| $ListViewItem2 = New-Object System.Windows.Forms.ListViewItem("--=2=--")
 | ||
| $ListViewItem3 = New-Object System.Windows.Forms.ListViewItem("--=3=--")
 | ||
| $ListViewItem4 = New-Object System.Windows.Forms.ListViewItem("--=4=--")
 | ||
| $ListView.Items.Add($ListViewItem1)
 | ||
| $ListView.Items.Add($ListViewItem2)
 | ||
| $ListView.Items.Add($ListViewItem3)
 | ||
| $ListView.Items.Add($ListViewItem4)
 | ||
| $ListView.Location = New-Object System.Drawing.Point(10,320)
 | ||
| $main_form.Controls.add($ListView)
 | ||
| 
 | ||
| $TreeView = New-Object System.Windows.Forms.TreeView
 | ||
| $TreeViewNode=$TreeView.Nodes.Add("1")
 | ||
| $TreeViewNode.Nodes.Add("2")
 | ||
| $TreeView.Nodes.Add("3")
 | ||
| $TreeView.Location = New-Object System.Drawing.Point(160,320)
 | ||
| $main_form.Controls.add($TreeView)
 | ||
| 
 | ||
| $DateTimePicker = New-Object System.Windows.Forms.DateTimePicker
 | ||
| $DateTimePicker.Location  = New-Object System.Drawing.Point(10,430)
 | ||
| $main_form.Controls.add($DateTimePicker)
 | ||
| 
 | ||
| $TrackBar = New-Object System.Windows.Forms.TrackBar
 | ||
| $TrackBar.Location = New-Object System.Drawing.Point(230,430)
 | ||
| $TrackBar.Autosize = $true
 | ||
| $TrackBar.Value=5
 | ||
| $main_form.Controls.add($TrackBar)
 | ||
| 
 | ||
| $ProgressBar = New-Object System.Windows.Forms.ProgressBar
 | ||
| $ProgressBar.Location = New-Object System.Drawing.Point(10,460)
 | ||
| $ProgressBar.Size = New-Object System.Drawing.Size(200,24)
 | ||
| $ProgressBar.Value = 0
 | ||
| $main_form.Controls.add($ProgressBar)
 | ||
| 
 | ||
| # Скролл по горизонтали
 | ||
| $HScrollBar = New-Object System.Windows.Forms.HScrollBar
 | ||
| $HScrollBar.Size = New-Object System.Drawing.Size(170,30)
 | ||
| $HScrollBar.Location = New-Object System.Drawing.Point(10,490)
 | ||
| $main_form.Controls.add($HScrollBar)
 | ||
| 
 | ||
| # Скролл по вертикали
 | ||
| $VScrollBar = New-Object System.Windows.Forms.VScrollBar
 | ||
| $VScrollBar.Size = New-Object System.Drawing.Size(16,176)
 | ||
| $VScrollBar.Location  = New-Object System.Drawing.Point(380,25)
 | ||
| $main_form.Controls.add($VScrollBar)
 | ||
| 
 | ||
| # ПКМ (Right Click Mouse)
 | ||
| $ContextMenu = New-Object System.Windows.Forms.ContextMenu
 | ||
| $ContextMenu.MenuItems.Add(
 | ||
| "Copy",{
 | ||
| $dgv_selected = @($DataGridView.SelectedCells.Value) # создать массив
 | ||
| Set-Clipboard $dgv_selected # скопировать в буфер содержимое массива
 | ||
| })
 | ||
| $main_form.ContextMenu = $ContextMenu
 | ||
| #endregion
 | ||
| 
 | ||
| #region binary data
 | ||
| $Formatter_binaryFomatter = New-Object System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
 | ||
| $System_IO_MemoryStream = New-Object System.IO.MemoryStream (,[byte[]][System.Convert]::FromBase64String('
 | ||
| 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
 | ||
| 4P8B2nibrmILiXkAAAAASUVORK5CYIIL'))
 | ||
| #endregion
 | ||
| 
 | ||
| #region menu
 | ||
| # Создать меню
 | ||
| $Menu = New-Object System.Windows.Forms.MenuStrip
 | ||
| $Menu.BackColor = "white"
 | ||
| $main_form.MainMenuStrip = $Menu
 | ||
| $main_form.Controls.Add($Menu)
 | ||
| 
 | ||
| # Добавить вкладку
 | ||
| $menuItem_file = New-Object System.Windows.Forms.ToolStripMenuItem
 | ||
| $menuItem_file.Text = "File"
 | ||
| $menuItem_file.Image = $Formatter_binaryFomatter.Deserialize($System_IO_MemoryStream)
 | ||
| $Menu.Items.Add($menuItem_file)
 | ||
| 
 | ||
| # Добавить кнопки
 | ||
| $menuItem_file_open = New-Object System.Windows.Forms.ToolStripMenuItem
 | ||
| $menuItem_file_open.Text = "Открыть"
 | ||
| $menuItem_file_open.Add_Click({OpenFile})
 | ||
| $menuItem_file.DropDownItems.Add($menuItem_file_open)
 | ||
| 
 | ||
| $menuItem_file_save = New-Object System.Windows.Forms.ToolStripMenuItem
 | ||
| $menuItem_file_save.Text = "Сохранить"
 | ||
| $menuItem_file_save.Add_Click({SaveFile})
 | ||
| $menuItem_file.DropDownItems.Add($menuItem_file_save)
 | ||
| 
 | ||
| $menuItem_file_font = New-Object System.Windows.Forms.ToolStripMenuItem
 | ||
| $menuItem_file_font.Text = "Шрифт"
 | ||
| $menuItem_file_font.Add_Click({
 | ||
| $FontDialog = New-Object System.Windows.Forms.FontDialog
 | ||
| $FontDialog.ShowDialog()
 | ||
| $font = $fontDialog.Font.Name
 | ||
| $Status.Text = "Выбран шрифт: $font"
 | ||
| })
 | ||
| $menuItem_file.DropDownItems.Add($menuItem_file_font)
 | ||
| 
 | ||
| $menuItem_file_exit = New-Object System.Windows.Forms.ToolStripMenuItem
 | ||
| $menuItem_file_exit.Text = "Выход"
 | ||
| $menuItem_file_exit.Add_Click({$main_form.Close()})
 | ||
| $menuItem_file.DropDownItems.Add($menuItem_file_exit)
 | ||
| #endregion
 | ||
| 
 | ||
| #region Associated Icon
 | ||
| $iconNP = [Drawing.Icon]::ExtractAssociatedIcon((Get-Command notepad).Path) # создать иконку ассоциации
 | ||
| 
 | ||
| # Добавить вкладку
 | ||
| $menuItem_file = New-Object System.Windows.Forms.ToolStripMenuItem
 | ||
| $menuItem_file.Text = "Help"
 | ||
| $menuItem_file.Image = $iconNP
 | ||
| $Menu.Items.Add($menuItem_file)
 | ||
| #endregion
 | ||
| 
 | ||
| #region C# Dll Import
 | ||
| $dll_import = @"
 | ||
| using System;
 | ||
| using System.Drawing;
 | ||
| using System.Runtime.InteropServices;
 | ||
| namespace System
 | ||
| {
 | ||
| public class IconExtractor
 | ||
| {
 | ||
| public static Icon Extract(string file, int number, bool largeIcon)
 | ||
| {
 | ||
| IntPtr large;
 | ||
| IntPtr small;
 | ||
| ExtractIconEx(file, number, out large, out small, 1);
 | ||
| try
 | ||
| {
 | ||
| return Icon.FromHandle(largeIcon ? large : small);
 | ||
| }
 | ||
| catch
 | ||
| {
 | ||
| return null;
 | ||
| }
 | ||
| }
 | ||
| [DllImport("Shell32.dll", EntryPoint = "ExtractIconExW", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
 | ||
| private static extern int ExtractIconEx(string sFile, int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons);
 | ||
| }
 | ||
| }
 | ||
| "@
 | ||
| Add-Type -TypeDefinition $dll_import -ReferencedAssemblies System.Drawing
 | ||
| #endregion
 | ||
| 
 | ||
| #region menu-2
 | ||
| $mainToolStrip = New-Object System.Windows.Forms.ToolStrip
 | ||
| $mainToolStrip.Location = New-Object System.Drawing.Point(615,25)
 | ||
| $mainToolStrip.ImageScalingSize = New-Object System.Drawing.Size(26,32) # размер изображения
 | ||
| $mainToolStrip.Size = New-Object System.Drawing.Size(300,32) # размер формы (для изображения меняется высота)
 | ||
| $mainToolStrip.AutoSize = $false
 | ||
| $mainToolStrip.Anchor = "Bottom" # None, Top, Bottom, Left, Right
 | ||
| $main_form.Controls.Add($mainToolStrip)
 | ||
| 
 | ||
| $toolStripOpen = New-Object System.Windows.Forms.ToolStripButton
 | ||
| $toolStripOpen.ToolTipText = "Open"
 | ||
| $toolStripOpen.Image = [System.IconExtractor]::Extract("shell32.dll", 22, $true) # 4-е изображение из 48
 | ||
| $toolStripOpen.Add_Click({OpenFile})
 | ||
| $mainToolStrip.Items.Add($toolStripOpen)
 | ||
| 
 | ||
| $toolStripTextBox = New-Object System.Windows.Forms.ToolStripTextBox # ToolStripComboBox
 | ||
| $toolStripTextBox.Size = New-Object System.Drawing.Size(80)
 | ||
| $mainToolStrip.Items.Add($toolStripTextBox)
 | ||
| #endregion
 | ||
| 
 | ||
| #region status
 | ||
| $StatusStrip = New-Object System.Windows.Forms.StatusStrip
 | ||
| $Status = New-Object System.Windows.Forms.ToolStripStatusLabel
 | ||
| $main_form.Controls.Add($statusStrip)
 | ||
| $StatusStrip.Items.Add($Status)
 | ||
| $Status.Text = "Статус"
 | ||
| #endregion
 | ||
| 
 | ||
| #region new
 | ||
| # UpDown
 | ||
| $NumericUpDown = New-Object System.Windows.Forms.NumericUpDown
 | ||
| $NumericUpDown.Location  = New-Object System.Drawing.Point(420,30)
 | ||
| $NumericUpDown.text = 1
 | ||
| $main_form.Controls.add($NumericUpDown)
 | ||
| 
 | ||
| $DomainUpDown = New-Object System.Windows.Forms.DomainUpDown
 | ||
| $DomainUpDown.Location = New-Object System.Drawing.Point(420,55)
 | ||
| $DomainUpDown.Items.add("text")
 | ||
| $main_form.Controls.add($DomainUpDown)
 | ||
| 
 | ||
| $Calendar = New-Object System.Windows.Forms.MonthCalendar
 | ||
| $Calendar.Location = New-Object System.Drawing.Point(420,80)
 | ||
| $main_form.Controls.add($Calendar)
 | ||
| 
 | ||
| $button.add_Click({
 | ||
| if ($RadioButton.Checked -eq $true) {$Status.Text = "Выбран RadioButton-1"}
 | ||
| if ($RadioButton.Checked -eq $true) {$ProgressBar.Value = 10}
 | ||
| if ($RadioButton_2.Checked -eq $true) {$Status.Text = "Выбран RadioButton-2"}
 | ||
| if ($RadioButton_2.Checked -eq $true) {$ProgressBar.Value = 30}
 | ||
| })
 | ||
| 
 | ||
| $button2.add_Click({
 | ||
| $Status.Text = "Нажата кнопка 2"
 | ||
| $ProgressBar.Value = 100
 | ||
| })
 | ||
| 
 | ||
| # Картинка на форме
 | ||
| $PictureBox = New-Object System.Windows.Forms.PictureBox
 | ||
| #$PictureBox.Load('D:\favico.jpg')
 | ||
| $PictureBox.Image = $iconNP.ToBitmap()
 | ||
| $PictureBox.Location = "550, 480"
 | ||
| $PictureBox.Size = "32, 32"
 | ||
| $PictureBox.SizeMode = "StretchImage"
 | ||
| $main_form.Controls.Add($PictureBox)
 | ||
| 
 | ||
| $iconFolder = [Drawing.Icon]::ExtractAssociatedIcon((Get-Command explorer).Path)
 | ||
| 
 | ||
| $panel = New-Object System.Windows.Forms.Panel # создать панель, используется для группировки
 | ||
| $panel.Location = New-Object System.Drawing.Point(420,260) # удобно перемещать панель со всеми элементами внутри
 | ||
| $panel.BackgroundImage = $iconFolder # фоновое изображение на форме панели
 | ||
| $panel.BackgroundImageLayout = "zoom" # подогнать под размер формы с сохранение пропорций (none, stretch - растянуть)
 | ||
| $main_form.Controls.Add($panel)
 | ||
| 
 | ||
| # Динамическое добавление элемента
 | ||
| $button3 = New-Object System.Windows.Forms.Button
 | ||
| $button3.ForeColor = "Green"
 | ||
| $button3.Text = "Add +"
 | ||
| $button3.Location = New-Object System.Drawing.Point(5,5) # расположение на панели
 | ||
| $panel.Controls.Add($button3) # добавить на панель
 | ||
| 
 | ||
| $button3.add_Click({
 | ||
| $global:button_temp = New-Object System.Windows.Forms.Button # добавить в виде глобальной переменной
 | ||
| $button_temp.Text = "Temp"
 | ||
| $button_temp.Location = New-Object System.Drawing.Point(5,65)
 | ||
| $panel.Controls.Add($button_temp)
 | ||
| })
 | ||
| 
 | ||
| $button4 = New-Object System.Windows.Forms.Button
 | ||
| $button4.ForeColor = "Red"
 | ||
| $button4.Text = "Remove -"
 | ||
| $button4.Location = New-Object System.Drawing.Point(5,35)
 | ||
| $panel.Controls.Add($button4)
 | ||
| 
 | ||
| $button4.add_Click({
 | ||
| $panel.Controls.Remove($button_temp) # удаление кнопки
 | ||
| })
 | ||
| 
 | ||
| $LinkLabel = New-Object System.Windows.Forms.LinkLabel # создать текст ссылки
 | ||
| $LinkLabel.Text = "Ссылка"
 | ||
| $LinkLabel.LinkColor = "green"
 | ||
| $LinkLabel.ActiveLinkColor = "red"
 | ||
| $LinkLabel.LinkBehavior = "HoverUnderline" # подчеркивается при наведении
 | ||
| $LinkLabel.Location = New-Object System.Drawing.Point(420,370)
 | ||
| $LinkLabel.add_LinkClicked({ # событие нажатия
 | ||
| Start-Process ("https://metanit.com/sharp/windowsforms/4.2.php")
 | ||
| })
 | ||
| $main_form.Controls.Add($LinkLabel)
 | ||
| 
 | ||
| $auto_text = @("Text","TextBox")
 | ||
| 
 | ||
| # Пароль
 | ||
| $TextBox = New-Object System.Windows.Forms.TextBox
 | ||
| $TextBox.Multiline = $true # перенос по строкам, нужно применять для раскрытия пароля
 | ||
| $TextBox.WordWrap = $true
 | ||
| $TextBox.PasswordChar = "*"
 | ||
| $TextBox.Location  = New-Object System.Drawing.Point(420,400)
 | ||
| $main_form.Controls.Add($TextBox)
 | ||
| 
 | ||
| $ErrorProvider = New-Object System.Windows.Forms.ErrorProvider # добавить статус ошибки
 | ||
| 
 | ||
| $button5 = New-Object System.Windows.Forms.Button
 | ||
| $button5.Text = "Раскрыть"
 | ||
| $button5.Location = New-Object System.Drawing.Point(420,430)
 | ||
| $main_form.Controls.Add($button5)
 | ||
| 
 | ||
| $button5.add_Click({
 | ||
| $TextBox.UseSystemPasswordChar = $true
 | ||
| $ErrorProvider.SetError($button5, "Пароль раскрыт") # ошибка
 | ||
| })
 | ||
| 
 | ||
| # Текст с масками
 | ||
| $TextBox2 = New-Object System.Windows.Forms.MaskedTextBox
 | ||
| $TextBox2.Mask = "8("+"000"+")"+"-"+"000"+"-"+"0000"
 | ||
| # 9 - позволяет вводить цифры и пробелы
 | ||
| # # - позволяет вводить цифры, пробелы и знаки '+' и '-'
 | ||
| # L - позволяет вводить только буквенные символы
 | ||
| # A - позволяет вводить буквенные и цифровые символы
 | ||
| $TextBox2.Location  = New-Object System.Drawing.Point(420,460)
 | ||
| $main_form.Controls.Add($TextBox2)
 | ||
| 
 | ||
| $CheckBox3 = New-Object System.Windows.Forms.CheckBox
 | ||
| $CheckBox3.Text = "CheckBox3"
 | ||
| $CheckBox3.AutoSize = $true
 | ||
| $CheckBox3.Checked = $true
 | ||
| $CheckBox3.CheckState = "Indeterminate" # флажок не определен - отмечен, но находится в неактивном состоянии
 | ||
| $CheckBox3.AutoCheck = $false # невозможно снять или активировать галочку (можно отключать когда функции будут недоступны)
 | ||
| # при изменении состояния флажка он генерирует событие CheckedChanged
 | ||
| $CheckBox3.Location  = New-Object System.Drawing.Point(420,490)
 | ||
| $main_form.Controls.Add($CheckBox3)
 | ||
| 
 | ||
| # Разделитель (горизонтальная линия)
 | ||
| $outputBox1 = New-Object System.Windows.Forms.TextBox
 | ||
| $outputBox1.Location = New-Object System.Drawing.Point(0,530)
 | ||
| $outputBox1.Size = New-Object System.Drawing.Size(600,1)
 | ||
| $outputBox1.BackColor = "Black"
 | ||
| $outputBox1.MultiLine = $True
 | ||
| $main_form.Controls.Add($outputBox1)
 | ||
| #endregion
 | ||
| 
 | ||
| #region password
 | ||
| Add-Type -AssemblyName System.Web
 | ||
| 
 | ||
| $button_gen = New-Object System.Windows.Forms.Button
 | ||
| $button_gen.Text = "Сгенерировать пароль"
 | ||
| $button_gen.BackColor = "orange"
 | ||
| $button_gen.Location = New-Object System.Drawing.Point(20,540)
 | ||
| $button_gen.Size = New-Object System.Drawing.Size(150,40)
 | ||
| $main_form.Controls.Add($button_gen)
 | ||
| 
 | ||
| $button_gen.add_Click({
 | ||
| $pass = [System.Web.Security.Membership]::GeneratePassword(10,2)
 | ||
| $outputBox2.Text = $pass
 | ||
| })
 | ||
| 
 | ||
| $outputBox2 = New-Object System.Windows.Forms.TextBox
 | ||
| $outputBox2.Location = New-Object System.Drawing.Point(21,585)
 | ||
| $outputBox2.Size = New-Object System.Drawing.Size(150,30)
 | ||
| $outputBox2.Font = "Arial,14"
 | ||
| $outputBox2.MultiLine = $True
 | ||
| $main_form.Controls.Add($outputBox2)
 | ||
| #endregion
 | ||
| 
 | ||
| #region translit
 | ||
| function translit {
 | ||
| param([string]$inString) # параметр принимает только текст
 | ||
| $Translit = @{ # создать массив
 | ||
| [char]'а' = "a"
 | ||
| [char]'А' = "A"
 | ||
| [char]'б' = "b"
 | ||
| [char]'Б' = "B"
 | ||
| [char]'в' = "v"
 | ||
| [char]'В' = "V"
 | ||
| [char]'г' = "g"
 | ||
| [char]'Г' = "G"
 | ||
| [char]'д' = "d"
 | ||
| [char]'Д' = "D"
 | ||
| [char]'е' = "e"
 | ||
| [char]'Е' = "E"
 | ||
| [char]'ё' = "yo"
 | ||
| [char]'Ё' = "Yo"
 | ||
| [char]'ж' = "zh"
 | ||
| [char]'Ж' = "Zh"
 | ||
| [char]'з' = "z"
 | ||
| [char]'З' = "Z"
 | ||
| [char]'и' = "i"
 | ||
| [char]'И' = "I"
 | ||
| [char]'й' = "j"
 | ||
| [char]'Й' = "J"
 | ||
| [char]'к' = "k"
 | ||
| [char]'К' = "K"
 | ||
| [char]'л' = "l"
 | ||
| [char]'Л' = "L"
 | ||
| [char]'м' = "m"
 | ||
| [char]'М' = "M"
 | ||
| [char]'н' = "n"
 | ||
| [char]'Н' = "N"
 | ||
| [char]'о' = "o"
 | ||
| [char]'О' = "O"
 | ||
| [char]'п' = "p"
 | ||
| [char]'П' = "P"
 | ||
| [char]'р' = "r"
 | ||
| [char]'Р' = "R"
 | ||
| [char]'с' = "s"
 | ||
| [char]'С' = "S"
 | ||
| [char]'т' = "t"
 | ||
| [char]'Т' = "T"
 | ||
| [char]'у' = "u"
 | ||
| [char]'У' = "U"
 | ||
| [char]'ф' = "f"
 | ||
| [char]'Ф' = "F"
 | ||
| [char]'х' = "h"
 | ||
| [char]'Х' = "H"
 | ||
| [char]'ц' = "c"
 | ||
| [char]'Ц' = "C"
 | ||
| [char]'ч' = "ch"
 | ||
| [char]'Ч' = "Ch"
 | ||
| [char]'ш' = "sh"
 | ||
| [char]'Ш' = "Sh"
 | ||
| [char]'щ' = "sch"
 | ||
| [char]'Щ' = "Sch"
 | ||
| [char]'ъ' = ""
 | ||
| [char]'Ъ' = ""
 | ||
| [char]'ы' = "y"
 | ||
| [char]'Ы' = "Y"
 | ||
| [char]'ь' = ""
 | ||
| [char]'Ь' = ""
 | ||
| [char]'э' = "e"
 | ||
| [char]'Э' = "E"
 | ||
| [char]'ю' = "yu"
 | ||
| [char]'Ю' = "Yu"
 | ||
| [char]'я' = "ya"
 | ||
| [char]'Я' = "Ya"
 | ||
| }
 | ||
| $outCHR = "" # создать пустую переменную типа String (строка), не массив!
 | ||
| foreach ($CHR in $inCHR = $inString.ToCharArray()) # передать в цикл переменную и разбить на массив из букв
 | ||
| {
 | ||
| if ($Translit[$CHR] -cne $Null ) # если буква с учетом ригистра присутствует в массиве $Translit
 | ||
| {$outCHR += $Translit[$CHR]} # заменить на переменную из массива $Translit и добавить букву в переменную вывода
 | ||
| else
 | ||
| {$outCHR += $CHR} # если буква отсутствует в массиве $Translit, добавить минуя массив преобразования
 | ||
| }
 | ||
| $global:translit_out = $outCHR
 | ||
| }
 | ||
| 
 | ||
| $outputBox3 = New-Object System.Windows.Forms.TextBox
 | ||
| $outputBox3.Location = New-Object System.Drawing.Point(280,545)
 | ||
| $outputBox3.Size = New-Object System.Drawing.Size(220,30)
 | ||
| $outputBox3.Font = "Arial,14"
 | ||
| $outputBox3.MultiLine = $True
 | ||
| $main_form.Controls.Add($outputBox3)
 | ||
| 
 | ||
| $button_trans = New-Object System.Windows.Forms.Button
 | ||
| $button_trans.Text = "        Транслит"
 | ||
| $button_trans.Image = $iconNP # наложить иконку
 | ||
| $button_trans.ImageAlign = "MiddleLeft" # расположение изображения слева
 | ||
| $button_trans.Font = "Arial,12"
 | ||
| $button_trans.Location = New-Object System.Drawing.Point(330,580)
 | ||
| $button_trans.Size = New-Object System.Drawing.Size(120,40)
 | ||
| $main_form.Controls.Add($button_trans)
 | ||
| 
 | ||
| $button_trans.add_Click({
 | ||
| $name = $outputBox3.text # зрабрать имя
 | ||
| translit $name # выполнить функцию с подстановкой параметра имени
 | ||
| $translit_name = $translit_out
 | ||
| $outputBox3.text = $translit_name # перезаписать текст формы ввода на вывод
 | ||
| })
 | ||
| #endregion
 | ||
| 
 | ||
| #region DGV-ping
 | ||
| $DataGridView = New-Object System.Windows.Forms.DataGridView
 | ||
| $DataGridView.Location = New-Object System.Drawing.Point(620,115)
 | ||
| $DataGridView.Size = New-Object System.Drawing.Size(400,200)
 | ||
| $DataGridView.AutoSizeColumnsMode = "Fill" # ширина столбцов подбирается таким образом, чтобы суммарная ширина всех столбцов в точности заполняла отображаемую область элемента управления, а прокрутка по горизонтали требовалась только для того, чтобы не допускать уменьшения ширины столбцов ниже значений свойства MinimumWidth. Относительная ширина столбцов определяется относительными значениями свойства FillWeight.
 | ||
| # AllCells # Ширина столбцов изменяется так, чтобы вместить содержимое всех ячеек столбцов, включая ячейки заголовков.
 | ||
| # AllCellsExceptHeader # Ширина столбцов изменяется так, чтобы вместить содержимое всех ячеек столбцов, исключая ячейки заголовков.
 | ||
| # ColumnHeader # Ширина столбцов изменяется так, чтобы вместить содержимое ячеек заголовков столбцов.
 | ||
| # DisplayedCells # Ширина столбцов изменяется так, чтобы вместить содержимое всех ячеек столбцов, которые находятся в строках, отображающихся на экране в настоящий момент, включая ячейки заголовков.
 | ||
| # DisplayedCellsExceptHeader # Ширина столбцов изменяется так, чтобы вместить содержимое всех ячеек столбцов, которые находятся в строках, отображающихся на экране в настоящий момент, исключая ячейки заголовков.
 | ||
| $DataGridView.AutoSize = $false
 | ||
| $DataGridView.MultiSelect = $true # разрешить выбор нескольких ячеек
 | ||
| $DataGridView.ReadOnly = $true # запретить редактирование
 | ||
| $DataGridView.TabIndex = 0
 | ||
| $main_form.Controls.Add($DataGridView)
 | ||
| 
 | ||
| #####
 | ||
| # DataGridView.ForeColor # цвет шрифта ячеек таблицы
 | ||
| # DataGridView.GridColor # цвет линий таблицы
 | ||
| # DataGridView.DefaultCellStyle # цвет и другие настройки вида ячеек таблицы. Настройки стилей строк, столбцов и ячеек переопределяют данное свойство.
 | ||
| # DataGridView.RowsDefaultCellStyle # цвет строк, переопределяет значения DataGridView.DefaultCellStyle.
 | ||
| # DataGridView.AlternatingRowsDefaultCellStyle # цвет нечетных строк таблицы. Переопределяет все стили, кроме DataGridViewRow.DefaultCellStyle и DataGridViewCell.Style
 | ||
| # DataGridViewColumn.DefaultCellStyle # цвет ячеек столбца. Переопределяется всеми стилями, кроме DataGridView.DefaultCellStyle.
 | ||
| # DataGridViewRow.DefaultCellStyle # цвет строки, хранит свои настройки независимо от родительского DataGridView. Переопределяет все стили, кроме DataGridViewCell.Style
 | ||
| # DataGridViewCell.Style # цвет ячейки, переопределяет все стили.
 | ||
| # DataGridView.ColumnHeadersDefaultCellStyle # цвет заголовков столбцов, при DataGridView.EnableHeadersVisualStyles = false.
 | ||
| # DataGridView.RowHeadersDefaultCellStyle # цвет заголовков строк, при DataGridView.EnableHeadersVisualStyles = false.
 | ||
| # AutoSizeMode - подгонка ширины столбца по его содержимому;
 | ||
| # ColumnType # определяет внешний вид ячеек столбца (какой объект для отображения информации находится в ячейках столбца);
 | ||
| # DataPropertyName # имя, отображающего в столбце поля;
 | ||
| # Frozen # фиксация столбца (столбец не передвигается при прокручивании таблицы);
 | ||
| # HeaderText # текст заголовка столбца;
 | ||
| # Width # ширина поля;
 | ||
| # MaxInputLength # максимально вводимая длина текста;
 | ||
| # MinimumWidth # минимальная ширина столбца;
 | ||
| # ReadOnly # блокировка столбца для редактирования данных;
 | ||
| # Resizable # разрешает менять ширину столбца;
 | ||
| # SortMode # сортировка данных в таблице по этому столбцу;
 | ||
| # ToolTipText # всплывающая подсказка для столбца;
 | ||
| # Visible # делает столбец невидимым.
 | ||
| 
 | ||
| # Сортировка:
 | ||
| # DataGridView.Sort(<Имя столбца>, <Порядок сортировки>) # где DataGridView - это имя объекта, <Имя столбца> - это имя столбца (свойство Name ) по которому происходит сортировка записей в таблице, параметр <Порядок сортировки> определяет порядок сортировки и может принимать два значения:
 | ||
| # System.ComponentModel.ListSortDirection.Ascending # сортировка по возрастанию;
 | ||
| # System.ComponentModel.ListSortDirection.Descending # сортировка по убыванию.
 | ||
| #####
 | ||
| 
 | ||
| $button_add = New-Object System.Windows.Forms.Button
 | ||
| $button_add.Text = "Ping"
 | ||
| $button_add.Location = New-Object System.Drawing.Point(620,80)
 | ||
| $main_form.Controls.Add($button_add)
 | ||
| 
 | ||
| $button_add.Add_Click({
 | ||
| $button_add.Enabled = $false
 | ||
| 
 | ||
| ### DataGridViewCheckBoxColumn
 | ||
| $CheckBoxColumn = New-Object System.Windows.Forms.DataGridViewCheckBoxColumn
 | ||
| $CheckBoxColumn.Name = "CheckBox"
 | ||
| $DataGridView.ReadOnly = $false # разрешить редактирование, что бы можно было отмечать CheckBox
 | ||
| ###
 | ||
| 
 | ||
| $DataGridView.DataSource = $null # очистить источник из кнопки 2
 | ||
| $DataGridView.ColumnCount = 2 # создать кол-во столбцов
 | ||
| $DataGridView.Columns[0].Name = "Name" # добавить 1-й столбец и дать ему имя
 | ||
| $DataGridView.Columns[1].Name = "Status" # 2-й
 | ||
| 
 | ||
| $DataGridView.Columns.Add($CheckBoxColumn) # добавить стобец с CheckBoxColumn
 | ||
| 
 | ||
| $list_srv = @("google.com","github.com","cloud.delprof.ru","pbx.delprof.ru","vks.delprof.ru")
 | ||
| 
 | ||
| $ping_out = foreach ($srv in $list_srv) {
 | ||
| $status_ping = ping -n 1 -w 50 $srv
 | ||
| if ($status_ping -match "ttl") {
 | ||
| $DataGridView.Rows.Add("$srv","Available") # заполнить строки (Rows) значениями через запятую в 1-й и 2-й столбец
 | ||
| } else {
 | ||
| $DataGridView.Rows.Add("$srv","Not available")
 | ||
| }
 | ||
| }
 | ||
| 
 | ||
| ### Красим:
 | ||
| $DataGridView.Rows | ForEach-Object {
 | ||
| if ($_.Cells["Status"].Value -eq "Available") { # если в клетке столбца Status значение (Value) = Available
 | ||
| $_.Cells[1] | %{$_.Style.BackColor = "lightgreen"} # то покрасить 2-ю клетку
 | ||
| } elseif ($_.Cells["Status"].Value -eq "Not available") {
 | ||
| $_.Cells[1] | %{$_.Style.BackColor = "pink"}
 | ||
| }}
 | ||
| 
 | ||
| $button_add.Enabled = $true
 | ||
| })
 | ||
| #endregion
 | ||
| 
 | ||
| #region DGV-proc
 | ||
| $button_add_2 = New-Object System.Windows.Forms.Button
 | ||
| $button_add_2.Text = "Process"
 | ||
| $button_add_2.Location = New-Object System.Drawing.Point(700,80)
 | ||
| $main_form.Controls.Add($button_add_2)
 | ||
| 
 | ||
| $button_add_2.Add_Click({
 | ||
| $DataGridView.ColumnCount = $null # удалить стобцы из кнопки 1
 | ||
| $global:services = Get-Service | select name,status # создать массив
 | ||
| $list = New-Object System.collections.ArrayList # объект листа
 | ||
| $list.AddRange($services) # заполнить объект
 | ||
| $DataGridView.DataSource = $list # указать источник для таблицы
 | ||
| })
 | ||
| #endregion
 | ||
| 
 | ||
| #region Watermark
 | ||
| $watermark = "Server name"
 | ||
| 
 | ||
| $TextBox_Enter = {
 | ||
| if ($TextBox_W.Text -like $watermark) {
 | ||
| $TextBox_W.Text = ""
 | ||
| $TextBox_W.ForeColor = [System.Drawing.SystemColors]::WindowText
 | ||
| }}
 | ||
| 
 | ||
| $TextBox_Leave = {
 | ||
| if ($TextBox_W.Text -like "") {
 | ||
| $TextBox_W.Text = $watermark
 | ||
| $TextBox_W.ForeColor = [System.Drawing.Color]::LightGray
 | ||
| }}
 | ||
| 
 | ||
| $TextBox_W = New-Object System.Windows.Forms.TextBox
 | ||
| $TextBox_W.Location = New-Object System.Drawing.Point(780,80)
 | ||
| $TextBox_W.Size = New-Object System.Drawing.Size(200,30)
 | ||
| $TextBox_W.ForeColor = [System.Drawing.Color]::LightGray 
 | ||
| $TextBox_W.add_Enter($TextBox_Enter)
 | ||
| $TextBox_W.add_Leave($TextBox_Leave)
 | ||
| $TextBox_W.Text = $watermark
 | ||
| $main_form.Controls.Add($TextBox_W)
 | ||
| #endregion
 | ||
| 
 | ||
| #region Search
 | ||
| $TextBox_W.Add_TextChanged({
 | ||
| $search_text = $TextBox_W.Text
 | ||
| $search_services = @($services | Where { # создать массив, т.к. если найдено 1 значение, то его тип данных PSCustomObject вместо Object[] Array - массив
 | ||
| $_.Name -match "$search_text" # для быстрой фильтрации (поиска), используется уже полученный массив
 | ||
| })
 | ||
| $list = New-Object System.collections.ArrayList
 | ||
| $list.AddRange($search_services)
 | ||
| $DataGridView.DataSource = $list
 | ||
| })
 | ||
| #endregion
 | ||
| 
 | ||
| #region MouseDoubleClick
 | ||
| $ListBox_left = New-Object System.Windows.Forms.ListBox
 | ||
| $ListBox_left.Location  = New-Object System.Drawing.Point(620,330)
 | ||
| $ListBox_left.Size  = New-Object System.Drawing.Size(190,200)
 | ||
| $main_form.Controls.add($ListBox_left)
 | ||
| 
 | ||
| $ListBox_right = New-Object System.Windows.Forms.ListBox
 | ||
| $ListBox_right.Location  = New-Object System.Drawing.Point(830,330)
 | ||
| $ListBox_right.Size  = New-Object System.Drawing.Size(190,200)
 | ||
| $main_form.Controls.add($ListBox_right)
 | ||
| 
 | ||
| $form_Load = {
 | ||
| $items = 1..10 | %{"Item $_"}
 | ||
| $ListBox_left.Items.AddRange($items)
 | ||
| }
 | ||
| 
 | ||
| $ListBox_left_MouseDoubleClick = [System.Windows.Forms.MouseEventHandler]{
 | ||
| $ListBox_right.Items.Add($ListBox_left.SelectedItem)
 | ||
| $ListBox_left.Items.Remove($ListBox_left.SelectedItem)
 | ||
| }
 | ||
| 
 | ||
| $ListBox_right_MouseDoubleClick = [System.Windows.Forms.MouseEventHandler]{
 | ||
| $ListBox_left.Items.Add($ListBox_right.SelectedItem)
 | ||
| $ListBox_right.Items.Remove($ListBox_right.SelectedItem)
 | ||
| }
 | ||
| 
 | ||
| $ListBox_left.add_MouseDoubleClick($ListBox_left_MouseDoubleClick)
 | ||
| $ListBox_right.add_MouseDoubleClick($ListBox_right_MouseDoubleClick)
 | ||
| 
 | ||
| $main_form.add_Load($form_Load)
 | ||
| #endregion
 | ||
| 
 | ||
| #region PropertyGrid
 | ||
| $propertygrid = New-Object System.Windows.Forms.PropertyGrid
 | ||
| $propertygrid.Location = New-Object System.Drawing.Point(620,540)
 | ||
| $propertygrid.Size = New-Object System.Drawing.Size(200,100)
 | ||
| $propertygrid.Name = "PropertyGrid"
 | ||
| $propertygrid.TabIndex = 6
 | ||
| $main_form.Controls.Add($propertygrid)
 | ||
| #endregion
 | ||
| 
 | ||
| #region Beep
 | ||
| $Button_Beep = New-Object System.Windows.Forms.Button
 | ||
| $Button_Beep.Location  = New-Object System.Drawing.Point(830,540)
 | ||
| $Button_Beep.Text = "Beep"
 | ||
| $Button_Beep.AutoSize = $true
 | ||
| $main_form.Controls.Add($Button_Beep)
 | ||
| 
 | ||
| $Button_Beep.Add_Click({
 | ||
| [console]::beep(440,500)
 | ||
| [console]::beep(440,500)
 | ||
| [console]::beep(440,500)
 | ||
| [console]::beep(349,350)
 | ||
| [console]::beep(523,150)
 | ||
| [console]::beep(440,500)
 | ||
| [console]::beep(349,350)
 | ||
| [console]::beep(523,150)
 | ||
| [console]::beep(440,1000)
 | ||
| })
 | ||
| #endregion
 | ||
| 
 | ||
| $main_form.ShowDialog() |