PS-Commands/WinForms/WinForms-Test-Stend.ps1

885 lines
74 KiB
PowerShell
Raw Permalink Normal View History

2023-04-11 14:03:30 +03:00
<EFBFBD><EFBFBD>#region file function
function OpenFile {
$Status.Text = "K15@8B5 D09;"
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.Filter = "All Files (*.*)|*.*"
$OpenFileDialog.InitialDirectory = ".\"
$OpenFileDialog.Title = "K15@8B5 D09;"
$OpenFileDialog.ShowDialog() # >B:@KBL D09;
$path_save = $OpenFileDialog.FileNames # 701@0BL ?CBL : D09;C
$Status.Text = "K1@0= D09;: $path_save"
}
function SaveFile {
$Status.Text = "!>E@0=5=85 D09;0"
$SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
$SaveFileDialog.Filter = "All Files (*.txt)|*.txt"
$SaveFileDialog.FileName = "test" # ?@54CAB0=>2;5==>5 8<O D09;0
$SaveFileDialog.InitialDirectory = "$env:USERPROFILE\desktop\"
$SaveFileDialog.Title = "K15@8B5 D09;"
$SaveFileDialog.ShowDialog()
$path_out = $SaveFileDialog.FileNames # 701@0BL ?CBL : D09;C
$Status.Text = "$09; A>E@0=5=: $path_out"
}
#endregion
#region favicon.cc
Add-Type -assembly System.Drawing # 4>1028BL A1>@:C 4;O ?>4:;NG5=8O 8:>=>:
$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 # ?>4:;NG8BL A1>@:C D>@<K .NET
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text ="WinForms Test Stend"
$main_form.Width = 1120 # H8@8=0
$main_form.Height = 710 # 2KA>B0
$main_form.AutoSize = $false
$main_form.StartPosition = "CenterScreen" # AB0@B>20O ?>78F8O @0A?>;>65=8O D>@<K ?@8 >B:@KB88
#$main_form.ShowIcon = $False # A:@KBL 8:>=:C
#$main_form.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon('C:\Users\lifailon\desktop\favicon.cc.ico')
$main_form.Icon = $ico # =07=0G8BL favicon 4;O D>@<K
$main_form.FormBorderStyle = "FixedSingle" # 70?@5B8BL @0ABO3820BL
$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 = "=>?:0 2"
$button2.Location = New-Object System.Drawing.Point(0,30)
$GroupBox.Controls.Add($button2) # 4>1028BL =0 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) # 4>1028BL GroupBox =0 D>@<C
$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)
# >1028BL Label =0 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)
# !:@>;; ?> 3>@87>=B0;8
$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)
# !:@>;; ?> 25@B8:0;8
$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) # A>740BL <0AA82
Set-Clipboard $dgv_selected # A:>?8@>20BL 2 1CD5@ A>45@68<>5 <0AA820
})
$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
# !>740BL <5=N
$Menu = New-Object System.Windows.Forms.MenuStrip
$Menu.BackColor = "white"
$main_form.MainMenuStrip = $Menu
$main_form.Controls.Add($Menu)
# >1028BL 2:;04:C
$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)
# >1028BL :=>?:8
$menuItem_file_open = New-Object System.Windows.Forms.ToolStripMenuItem
$menuItem_file_open.Text = "B:@KBL"
$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 = "!>E@0=8BL"
$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 = "(@8DB"
$menuItem_file_font.Add_Click({
$FontDialog = New-Object System.Windows.Forms.FontDialog
$FontDialog.ShowDialog()
$font = $fontDialog.Font.Name
$Status.Text = "K1@0= H@8DB: $font"
})
$menuItem_file.DropDownItems.Add($menuItem_file_font)
$menuItem_file_exit = New-Object System.Windows.Forms.ToolStripMenuItem
$menuItem_file_exit.Text = "KE>4"
$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) # A>740BL 8:>=:C 0AA>F80F88
# >1028BL 2:;04:C
$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) # @07<5@ 87>1@065=8O
$mainToolStrip.Size = New-Object System.Drawing.Size(300,32) # @07<5@ D>@<K (4;O 87>1@065=8O <5=O5BAO 2KA>B0)
$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-5 87>1@065=85 87 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 = "!B0BCA"
#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 = "K1@0= RadioButton-1"}
if ($RadioButton.Checked -eq $true) {$ProgressBar.Value = 10}
if ($RadioButton_2.Checked -eq $true) {$Status.Text = "K1@0= RadioButton-2"}
if ($RadioButton_2.Checked -eq $true) {$ProgressBar.Value = 30}
})
$button2.add_Click({
$Status.Text = "060B0 :=>?:0 2"
$ProgressBar.Value = 100
})
# 0@B8=:0 =0 D>@<5
$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 # A>740BL ?0=5;L, 8A?>;L7C5BAO 4;O 3@C??8@>2:8
$panel.Location = New-Object System.Drawing.Point(420,260) # C4>1=> ?5@5<5I0BL ?0=5;L A> 2A5<8 M;5<5=B0<8 2=CB@8
$panel.BackgroundImage = $iconFolder # D>=>2>5 87>1@065=85 =0 D>@<5 ?0=5;8
$panel.BackgroundImageLayout = "zoom" # ?>4>3=0BL ?>4 @07<5@ D>@<K A A>E@0=5=85 ?@>?>@F89 (none, stretch - @0ABO=CBL)
$main_form.Controls.Add($panel)
# 8=0<8G5A:>5 4>102;5=85 M;5<5=B0
$button3 = New-Object System.Windows.Forms.Button
$button3.ForeColor = "Green"
$button3.Text = "Add +"
$button3.Location = New-Object System.Drawing.Point(5,5) # @0A?>;>65=85 =0 ?0=5;8
$panel.Controls.Add($button3) # 4>1028BL =0 ?0=5;L
$button3.add_Click({
$global:button_temp = New-Object System.Windows.Forms.Button # 4>1028BL 2 2845 3;>10;L=>9 ?5@5<5==>9
$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) # C40;5=85 :=>?:8
})
$LinkLabel = New-Object System.Windows.Forms.LinkLabel # A>740BL B5:AB AAK;:8
$LinkLabel.Text = "!AK;:0"
$LinkLabel.LinkColor = "green"
$LinkLabel.ActiveLinkColor = "red"
$LinkLabel.LinkBehavior = "HoverUnderline" # ?>4G5@:8205BAO ?@8 =02545=88
$LinkLabel.Location = New-Object System.Drawing.Point(420,370)
$LinkLabel.add_LinkClicked({ # A>1KB85 =060B8O
Start-Process ("https://metanit.com/sharp/windowsforms/4.2.php")
})
$main_form.Controls.Add($LinkLabel)
$auto_text = @("Text","TextBox")
# 0@>;L
$TextBox = New-Object System.Windows.Forms.TextBox
$TextBox.Multiline = $true # ?5@5=>A ?> AB@>:0<, =C6=> ?@8<5=OBL 4;O @0A:@KB8O ?0@>;O
$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 # 4>1028BL AB0BCA >H81:8
$button5 = New-Object System.Windows.Forms.Button
$button5.Text = " 0A:@KBL"
$button5.Location = New-Object System.Drawing.Point(420,430)
$main_form.Controls.Add($button5)
$button5.add_Click({
$TextBox.UseSystemPasswordChar = $true
$ErrorProvider.SetError($button5, "0@>;L @0A:@KB") # >H81:0
})
# "5:AB A <0A:0<8
$TextBox2 = New-Object System.Windows.Forms.MaskedTextBox
$TextBox2.Mask = "8("+"000"+")"+"-"+"000"+"-"+"0000"
# 9 - ?>72>;O5B 22>48BL F8D@K 8 ?@>15;K
# # - ?>72>;O5B 22>48BL F8D@K, ?@>15;K 8 7=0:8 '+' 8 '-'
# L - ?>72>;O5B 22>48BL B>;L:> 1C:25==K5 A8<2>;K
# A - ?>72>;O5B 22>48BL 1C:25==K5 8 F8D@>2K5 A8<2>;K
$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" # D;06>: =5 >?@545;5= - >B<5G5=, => =0E>48BAO 2 =50:B82=>< A>AB>O=88
$CheckBox3.AutoCheck = $false # =52>7<>6=> A=OBL 8;8 0:B828@>20BL 30;>G:C (<>6=> >B:;NG0BL :>340 DC=:F88 1C4CB =54>ABC?=K)
# ?@8 87<5=5=88 A>AB>O=8O D;06:0 >= 35=5@8@C5B A>1KB85 CheckedChanged
$CheckBox3.Location = New-Object System.Drawing.Point(420,490)
$main_form.Controls.Add($CheckBox3)
# 0745;8B5;L (3>@87>=B0;L=0O ;8=8O)
$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 = "!35=5@8@>20BL ?0@>;L"
$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) # ?0@0<5B@ ?@8=8<05B B>;L:> B5:AB
$Translit = @{ # A>740BL <0AA82
[char]'0' = "a"
[char]'' = "A"
[char]'1' = "b"
[char]'' = "B"
[char]'2' = "v"
[char]'' = "V"
[char]'3' = "g"
[char]'' = "G"
[char]'4' = "d"
[char]'' = "D"
[char]'5' = "e"
[char]'' = "E"
[char]'Q' = "yo"
[char]'' = "Yo"
[char]'6' = "zh"
[char]'' = "Zh"
[char]'7' = "z"
[char]'' = "Z"
[char]'8' = "i"
[char]'' = "I"
[char]'9' = "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]'A' = "s"
[char]'!' = "S"
[char]'B' = "t"
[char]'"' = "T"
[char]'C' = "u"
[char]'#' = "U"
[char]'D' = "f"
[char]'$' = "F"
[char]'E' = "h"
[char]'%' = "H"
[char]'F' = "c"
[char]'&' = "C"
[char]'G' = "ch"
[char]''' = "Ch"
[char]'H' = "sh"
[char]'(' = "Sh"
[char]'I' = "sch"
[char]')' = "Sch"
[char]'J' = ""
[char]'*' = ""
[char]'K' = "y"
[char]'+' = "Y"
[char]'L' = ""
[char]',' = ""
[char]'M' = "e"
[char]'-' = "E"
[char]'N' = "yu"
[char]'.' = "Yu"
[char]'O' = "ya"
[char]'/' = "Ya"
}
$outCHR = "" # A>740BL ?CABCN ?5@5<5==CN B8?0 String (AB@>:0), =5 <0AA82!
foreach ($CHR in $inCHR = $inString.ToCharArray()) # ?5@540BL 2 F8:; ?5@5<5==CN 8 @0718BL =0 <0AA82 87 1C:2
{
if ($Translit[$CHR] -cne $Null ) # 5A;8 1C:20 A CG5B>< @838AB@0 ?@8ACBAB2C5B 2 <0AA825 $Translit
{$outCHR += $Translit[$CHR]} # 70<5=8BL =0 ?5@5<5==CN 87 <0AA820 $Translit 8 4>1028BL 1C:2C 2 ?5@5<5==CN 2K2>40
else
{$outCHR += $CHR} # 5A;8 1C:20 >BACBAB2C5B 2 <0AA825 $Translit, 4>1028BL <8=CO <0AA82 ?@5>1@07>20=8O
}
$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 = " "@0=A;8B"
$button_trans.Image = $iconNP # =0;>68BL 8:>=:C
$button_trans.ImageAlign = "MiddleLeft" # @0A?>;>65=85 87>1@065=8O A;520
$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 # 7@01@0BL 8<O
translit $name # 2K?>;=8BL DC=:F8N A ?>4AB0=>2:>9 ?0@0<5B@0 8<5=8
$translit_name = $translit_out
$outputBox3.text = $translit_name # ?5@570?8A0BL B5:AB D>@<K 22>40 =0 2K2>4
})
#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" # H8@8=0 AB>;1F>2 ?>418@05BAO B0:8< >1@07><, GB>1K AC<<0@=0O H8@8=0 2A5E AB>;1F>2 2 B>G=>AB8 70?>;=O;0 >B>1@0605<CN >1;0ABL M;5<5=B0 C?@02;5=8O, 0 ?@>:@CB:0 ?> 3>@87>=B0;8 B@51>20;0AL B>;L:> 4;O B>3>, GB>1K =5 4>?CA:0BL C<5=LH5=8O H8@8=K AB>;1F>2 =865 7=0G5=89 A2>9AB20 MinimumWidth. B=>A8B5;L=0O H8@8=0 AB>;1F>2 >?@545;O5BAO >B=>A8B5;L=K<8 7=0G5=8O<8 A2>9AB20 FillWeight.
# AllCells # (8@8=0 AB>;1F>2 87<5=O5BAO B0:, GB>1K 2<5AB8BL A>45@68<>5 2A5E OG55: AB>;1F>2, 2:;NG0O OG59:8 703>;>2:>2.
# AllCellsExceptHeader # (8@8=0 AB>;1F>2 87<5=O5BAO B0:, GB>1K 2<5AB8BL A>45@68<>5 2A5E OG55: AB>;1F>2, 8A:;NG0O OG59:8 703>;>2:>2.
# ColumnHeader # (8@8=0 AB>;1F>2 87<5=O5BAO B0:, GB>1K 2<5AB8BL A>45@68<>5 OG55: 703>;>2:>2 AB>;1F>2.
# DisplayedCells # (8@8=0 AB>;1F>2 87<5=O5BAO B0:, GB>1K 2<5AB8BL A>45@68<>5 2A5E OG55: AB>;1F>2, :>B>@K5 =0E>4OBAO 2 AB@>:0E, >B>1@060NI8EAO =0 M:@0=5 2 =0AB>OI89 <><5=B, 2:;NG0O OG59:8 703>;>2:>2.
# DisplayedCellsExceptHeader # (8@8=0 AB>;1F>2 87<5=O5BAO B0:, GB>1K 2<5AB8BL A>45@68<>5 2A5E OG55: AB>;1F>2, :>B>@K5 =0E>4OBAO 2 AB@>:0E, >B>1@060NI8EAO =0 M:@0=5 2 =0AB>OI89 <><5=B, 8A:;NG0O OG59:8 703>;>2:>2.
$DataGridView.AutoSize = $false
$DataGridView.MultiSelect = $true # @07@5H8BL 2K1>@ =5A:>;L:8E OG55:
$DataGridView.ReadOnly = $true # 70?@5B8BL @540:B8@>20=85
$DataGridView.TabIndex = 0
$main_form.Controls.Add($DataGridView)
#####
# DataGridView.ForeColor # F25B H@8DB0 OG55: B01;8FK
# DataGridView.GridColor # F25B ;8=89 B01;8FK
# DataGridView.DefaultCellStyle # F25B 8 4@C385 =0AB@>9:8 2840 OG55: B01;8FK. 0AB@>9:8 AB8;59 AB@>:, AB>;1F>2 8 OG55: ?5@5>?@545;ONB 40==>5 A2>9AB2>.
# DataGridView.RowsDefaultCellStyle # F25B AB@>:, ?5@5>?@545;O5B 7=0G5=8O DataGridView.DefaultCellStyle.
# DataGridView.AlternatingRowsDefaultCellStyle # F25B =5G5B=KE AB@>: B01;8FK. 5@5>?@545;O5B 2A5 AB8;8, :@><5 DataGridViewRow.DefaultCellStyle 8 DataGridViewCell.Style
# DataGridViewColumn.DefaultCellStyle # F25B OG55: AB>;1F0. 5@5>?@545;O5BAO 2A5<8 AB8;O<8, :@><5 DataGridView.DefaultCellStyle.
# DataGridViewRow.DefaultCellStyle # F25B AB@>:8, E@0=8B A2>8 =0AB@>9:8 =57028A8<> >B @>48B5;LA:>3> DataGridView. 5@5>?@545;O5B 2A5 AB8;8, :@><5 DataGridViewCell.Style
# DataGridViewCell.Style # F25B OG59:8, ?5@5>?@545;O5B 2A5 AB8;8.
# DataGridView.ColumnHeadersDefaultCellStyle # F25B 703>;>2:>2 AB>;1F>2, ?@8 DataGridView.EnableHeadersVisualStyles = false.
# DataGridView.RowHeadersDefaultCellStyle # F25B 703>;>2:>2 AB@>:, ?@8 DataGridView.EnableHeadersVisualStyles = false.
# AutoSizeMode - ?>43>=:0 H8@8=K AB>;1F0 ?> 53> A>45@68<><C;
# ColumnType # >?@545;O5B 2=5H=89 284 OG55: AB>;1F0 (:0:>9 >1J5:B 4;O >B>1@065=8O 8=D>@<0F88 =0E>48BAO 2 OG59:0E AB>;1F0);
# DataPropertyName # 8<O, >B>1@060NI53> 2 AB>;1F5 ?>;O;
# Frozen # D8:A0F8O AB>;1F0 (AB>;15F =5 ?5@5428305BAO ?@8 ?@>:@CG820=88 B01;8FK);
# HeaderText # B5:AB 703>;>2:0 AB>;1F0;
# Width # H8@8=0 ?>;O;
# MaxInputLength # <0:A8<0;L=> 22>48<0O 4;8=0 B5:AB0;
# MinimumWidth # <8=8<0;L=0O H8@8=0 AB>;1F0;
# ReadOnly # 1;>:8@>2:0 AB>;1F0 4;O @540:B8@>20=8O 40==KE;
# Resizable # @07@5H05B <5=OBL H8@8=C AB>;1F0;
# SortMode # A>@B8@>2:0 40==KE 2 B01;8F5 ?> MB><C AB>;1FC;
# ToolTipText # 2A?;K20NI0O ?>4A:07:0 4;O AB>;1F0;
# Visible # 45;05B AB>;15F =52848<K<.
# !>@B8@>2:0:
# DataGridView.Sort(<<O AB>;1F0>, <>@O4>: A>@B8@>2:8>) # 345 DataGridView - MB> 8<O >1J5:B0, <<O AB>;1F0> - MB> 8<O AB>;1F0 (A2>9AB2> Name ) ?> :>B>@><C ?@>8AE>48B A>@B8@>2:0 70?8A59 2 B01;8F5, ?0@0<5B@ <>@O4>: A>@B8@>2:8> >?@545;O5B ?>@O4>: A>@B8@>2:8 8 <>65B ?@8=8<0BL 420 7=0G5=8O:
# System.ComponentModel.ListSortDirection.Ascending # A>@B8@>2:0 ?> 2>7@0AB0=8N;
# System.ComponentModel.ListSortDirection.Descending # A>@B8@>2:0 ?> C1K20=8N.
#####
$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 # @07@5H8BL @540:B8@>20=85, GB> 1K <>6=> 1K;> >B<5G0BL CheckBox
###
$DataGridView.DataSource = $null # >G8AB8BL 8AB>G=8: 87 :=>?:8 2
$DataGridView.ColumnCount = 2 # A>740BL :>;-2> AB>;1F>2
$DataGridView.Columns[0].Name = "Name" # 4>1028BL 1-9 AB>;15F 8 40BL 5<C 8<O
$DataGridView.Columns[1].Name = "Status" # 2-9
$DataGridView.Columns.Add($CheckBoxColumn) # 4>1028BL AB>15F A 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") # 70?>;=8BL AB@>:8 (Rows) 7=0G5=8O<8 G5@57 70?OBCN 2 1-9 8 2-9 AB>;15F
} else {
$DataGridView.Rows.Add("$srv","Not available")
}
}
### @0A8<:
$DataGridView.Rows | ForEach-Object {
if ($_.Cells["Status"].Value -eq "Available") { # 5A;8 2 :;5B:5 AB>;1F0 Status 7=0G5=85 (Value) = Available
$_.Cells[1] | %{$_.Style.BackColor = "lightgreen"} # B> ?>:@0A8BL 2-N :;5B:C
} 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 # C40;8BL AB>1FK 87 :=>?:8 1
$global:services = Get-Service | select name,status # A>740BL <0AA82
$list = New-Object System.collections.ArrayList # >1J5:B ;8AB0
$list.AddRange($services) # 70?>;=8BL >1J5:B
$DataGridView.DataSource = $list # C:070BL 8AB>G=8: 4;O B01;8FK
})
#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 { # A>740BL <0AA82, B.:. 5A;8 =0945=> 1 7=0G5=85, B> 53> B8? 40==KE PSCustomObject 2<5AB> Object[] Array - <0AA82
$_.Name -match "$search_text" # 4;O 1KAB@>9 D8;LB@0F88 (?>8A:0), 8A?>;L7C5BAO C65 ?>;CG5==K9 <0AA82
})
$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()