首页 > 系统相关 >powershell 创建winform窗体 T1

powershell 创建winform窗体 T1

时间:2024-08-27 14:36:47浏览次数:9  
标签:Object System T1 Forms Add 窗体 New powershell Size


$app=[System.Windows.Forms.Application]
$myForm=new-object System.Windows.Forms.Form
$myForm.Text="my window"
$button1 = new-object System.Windows.Forms.Button
$button1.Size = new-object System.Drawing.Size -argumentlist 75, 23
$button1.Text = "点我试试"
$textbox1=new-object System.Windows.Forms.TextBox
$textBox1.Multiline = $true;
$textBox1.Text = "hello world"
$textBox1.Size = new-object System.Drawing.Size -argumentlist 281, 227
$flowLayoutPanel1 = new-object System.Windows.Forms.FlowLayoutPanel
$myForm.Controls.Add($flowLayoutPanel1)
$flowLayoutPanel1.Controls.Add($textBox1);
$flowLayoutPanel1.Controls.Add($button1);
$flowLayoutPanel1.Dock = "Fill"
$flowLayoutPanel1.FlowDirection = "TopDown"
$button1ClickEventHandler = [System.EventHandler] {
[System.Windows.Forms.MessageBox]::Show("Hello world!")
}
$button1.Add_Click($button1ClickEventHandler)
$app::EnableVisualStyles()
$app::Run($myForm)

# listbox项选择demo
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName PresentationFramework


$form = New-Object System.Windows.Forms.Form
$form.Text = 'Data Entry Form'
$form.Size = New-Object System.Drawing.Size(700,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 make a selection from the list below:'
$form.Controls.Add($label)

$listBox = New-Object System.Windows.Forms.Listbox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,20)

# 需要更新参数的列表
$listBoxNew = New-Object System.Windows.Forms.Listbox
$listBoxNew.Location = New-Object System.Drawing.Point(360,40)
$listBoxNew.Size = New-Object System.Drawing.Size(260,20)

# 创建按钮
$button = New-Object System.Windows.Forms.Button
$button.Location = New-Object System.Drawing.Point(280,80)
$button.Text = "执行操作"
$button.Size = New-Object System.Drawing.Size(75,23)

# 定义按钮的Click事件处理程序
$button.Add_Click({
    # 获取选中的项
    $selectedItem = $listBox.SelectedItem
})

$listBox.SelectionMode = 'MultiExtended'

#[void] $listBox.Items.Add('Item 1')
#[void] $listBox.Items.Add('Item 2')
#[void] $listBox.Items.Add('Item 3')
#[void] $listBox.Items.Add('Item 4')
#[void] $listBox.Items.Add('Item 5')
$adpaters=$(Get-NetAdapter | Select-Object -ExpandProperty Name)
foreach ($ad in $adpaters)
{
	[void] $listBox.Items.Add($ad)
}

$listBox.Height = 70
$form.Controls.Add($listBox)
$form.Topmost = $true

$form.Controls.Add($listBoxNew)

$result = $form.ShowDialog()

if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
    $x = $listBox.SelectedItems
    $x
	
	foreach ($ad in $x)
{
	[void] $listBoxNew.Items.Add($ad)
}
}
# 字符串匹配

Get-NetAdapter|Where-Object {$_.InterfaceDescription -like 'Intel*'}
输出:
Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
有线                      Intel(R) Ethernet Connection (11) I2...       5 Up           B0-7B-25-07-1B-BB         1 Gbps

 

选择网卡自动设置参数

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName PresentationFramework
[System.Windows.Forms.Application]::EnableVisualStyles()

# 配置网卡参数
Function setNetParam ($adaptname)  
{  
try{
Set-NetAdapterAdvancedProperty -Name $adaptname  -RegistryKeyword "*SpeedDuplex" -RegistryValue 6
Set-NetAdapterAdvancedProperty -Name $adaptname  -RegistryKeyword "*ReceiveBuffers" -RegistryValue 2048
Set-NetAdapterAdvancedProperty -Name $adaptname  -RegistryKeyword "*TransmitBuffers" -RegistryValue 2048
Set-NetAdapterAdvancedProperty -Name $adaptname  -RegistryKeyword "*JumboPacket" -RegistryValue 9014
Set-NetAdapterAdvancedProperty -Name $adaptname  -RegistryKeyword "ITR" -RegistryValue 3600
#Set-NetAdapterAdvancedProperty -Name $adaptname  -RegistryKeyword "EEELinkAdvertisement" -RegistryValue 0
}
catch{
	#Throw "Error:" ,$adaptname
	"an error occured"
}
}

# 取消勾选允许计算机关闭此设备以节省电
Function disablePowerMang($adaptname)
{	
	# $NICs = Get-NetAdapter | Where-Object {$_.status -eq 'Up'}
	$NICs = Get-NetAdapter | Where-Object {$_.Name -eq $adaptname}

	Foreach ($NIC in $NICs)
	{
		$powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName -match [regex]::Escape($nic.PNPDeviceID)}
		If ($powerMgmt.Enable -eq $True)
		{
			 $powerMgmt.Enable = $False
			 $powerMgmt.psbase.Put()
		}
	}
}

$form = New-Object System.Windows.Forms.Form
$form.Text = '相机网卡参数自动配置'
$form.Size = New-Object System.Drawing.Size(700,360)
$form.StartPosition = 'CenterScreen'

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(75,250)
$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,250)
$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 = '选择要配置的网卡(可多选)'
$form.Controls.Add($label)

$listBox = New-Object System.Windows.Forms.Listbox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,200)

$textbox1=new-object System.Windows.Forms.TextBox
$textBox1.Multiline = $true;
$textBox1.Text = ""
$textBox1.Location = New-Object System.Drawing.Point(360,45) 
$textBox1.Size = new-object System.Drawing.Size(300, 227)

# 创建按钮
$button = New-Object System.Windows.Forms.Button
$button.Location = New-Object System.Drawing.Point(280,45)  
$button.Size = New-Object System.Drawing.Size(75,23)
$button.Text = "-->"
$form.Controls.Add($button)  

# 定义按钮的Click事件处理程序
$button.Add_Click({
	#$form.Controls.Remove($listBoxNew)
	# 需要更新参数的列表
	# $listBoxNew = New-Object System.Windows.Forms.Listbox
	# $listBoxNew.Location = New-Object System.Drawing.Point(360,40)
	# $listBoxNew.Size = New-Object System.Drawing.Size(260,20)
    ####获取选中的项
    # $selectedItem = $listBox.SelectedItem
	# $selectedItem
	
	# foreach ($ad in $selectedItem)
	# {
		# [void] $listBoxNew.Items.Add($ad)
	# }
	# $listBoxNew.Height = 70
	# $form.Controls.Add($listBoxNew)
	
	$textBox1.Text=""
	$allText = ""
	####获取选中的项
    $selectedItem = $listBox.SelectedItem
	$allText = $(-Join $selectedItem)
	foreach ($ad in $selectedItem)
	{
		# [void] $listBoxNew.Items.Add($ad)
		Write-Output "start update net param :"$ad
		[System.Windows.Forms.MessageBox]::Show("开始配置网卡【"+$ad + "】,请等待,配置完成将弹窗")
		setNetParam($ad)
		disablePowerMang($ad)
		[System.Windows.Forms.MessageBox]::Show("【"+$ad + "】 ---->设置 成功!")
	}
	$textBox1.Text = $allText
})

$listBox.SelectionMode = 'MultiExtended'


$adpaters=$(Get-NetAdapter | Select-Object -ExpandProperty Name)
foreach ($ad in $adpaters)
{
	[void] $listBox.Items.Add($ad)
}

#$listBox.Height = 70
$form.Controls.Add($listBox)
#$form.Controls.Add($listBoxNew)
$form.Controls.Add($textBox1)
$form.Topmost = $true

$form.Add_Shown({$form.Activate()})  
$result = $form.ShowDialog()

if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
    $x = $listBox.SelectedItems
    $x
}

 

标签:Object,System,T1,Forms,Add,窗体,New,powershell,Size
From: https://www.cnblogs.com/hakula/p/18381081

相关文章

  • 桌面窗体工具类库 - C#小函数类推荐
          此文记录的是检测桌面窗体的小函数。/***桌面窗体工具类库AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00说明:用......
  • 秋招力扣Hot100刷题总结——二叉树
    二叉树相关的题目基本上都会使用递归,因此做二叉树的题目时首先使用递归,明确递归结束的条件。1.二叉树的层序遍历题目链接题目要求:给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。代码及思路使用队列存储每一层的节点,左边节点先......
  • Study Plan For Algorithms - Part11
    1.合并两个有序链表题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。classSolution:defmergeTwoLists(self,list1:Optional[ListNode],list2:Option......
  • 《黑神话:悟空》游戏闪退弹窗“找不到concrt140.dll”该怎么解决?黑神话悟空游戏崩溃提
    若《黑神话:悟空》出现“找不到concrt140.dll”闪退弹窗,可重新安装MicrosoftVisualC++2015Redistributable,或利用系统工具修复,也可更新系统、清理注册表等。还可手动下载该文件放置到对应目录,但要确保来源安全。本篇将为大家带来黑神话悟空游戏崩溃提示缺失concrt140.dll的修......
  • 使用PowerShell自动化Windows系统管理任务
    1.管理服务列出所有服务Get-Service启动服务Start-Service-Name"ServiceName"停止服务Stop-Service-Name"ServiceName"2.管理计划任务创建计划任务$Action=New-ScheduledTaskAction-Execute"C:\Path\To\Executable.exe"$Trigger=New-ScheduledTask......
  • YC327A [ 20240821 CQYC NOIP 模拟赛 T1 ] 最值(minmax)
    题意对于一个序列\({b_n}\),规定:\[f_min(b)=\prod_{i=1}^n(min_{j=1}^ib_j)\]\[f_max(b)=\prod_{i=1}^n(max_{j=1}^ib_j)\]给定一个序列\(a\),求\(a\)所有的排列\(p\)的\(f_min(p)\)与\(f_max(p)\)之和。\(n\le5000\)Sol不难想到一个简......
  • A 3nm, 32.5TOPS/W, 55.0TOPS/mm2 and 3.78Mb/mm2 Fully-Digital Compute-in-Memory M
    1、强调存储密度(StorageDensity)Mb/mm2,存算一体的主要目的是减少数据搬运的开销,如果一味的堆计算单元而损失存储密度,那么虽然整体的计算吞吐率(TOPS)可以做到很大,相应的对计算密度也会有提升,但是由于需要频繁给CIMMacro刷新数据,从系统能效的角度上来说反而是下降的。这次的SRAMArr......
  • 第T10周:数据增强
    >-**......
  • 「代码随想录算法训练营」第四十三天 | 图论 part1
    797.所有可能的路径题目链接:https://leetcode.cn/problems/all-paths-from-source-to-target/description/文章讲解:https://programmercarl.com/kamacoder/0098.所有可达路径.html题目难度:中等题目状态:看题解思路一:DFSvoiddfs(vector<vector<int>>&graph,intx,intn......
  • 在 PowerShell 脚本中调用 msiexec 进行静默安装,可以通过设置 msiexec 的参数来实现。
    在PowerShell脚本中调用msiexec进行静默安装,可以通过设置msiexec的参数来实现。静默安装意味着在安装过程中不会弹出用户界面,也不会进行用户交互。下面是一个示例,演示如何使用PowerShell脚本执行静默安装。示例PowerShell脚本powershellCopyCode#MSI文件的路径$m......