`
hongzhguan
  • 浏览: 273069 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Powershell创建WinForm应用程序

 
阅读更多

Function Show-WinForm([Array]$objectArray){
#$objectArray = @($input)
#Ensure that they've piped information into the script
if($objectArray.Count -eq 0 )
{
 Write-Error "This script requires pipeline input." ;
 return
}
#load the windows Forms assembly
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms");
##Create the main form
$form = New-Object Windows.Forms.Form
$form.Size  = New-Object System.Drawing.Size @(600,600);

#Create the listBox to hold the items form the pipeline
$listbox = New-Object System.Windows.Forms.CheckedListBox;
$listbox.CheckOnClick = $true
$listbox.Dock = 'Fill' ;
$form.Text = "Select the list of objects you wish to pass down the pipeline"
$listbox.Items.AddRange($objectArray);

#Create the button panel to hold the ok and cancel buttons
$buttonPanel = New-Object Windows.Forms.Panel ;
$buttonPanel.Size = New-Object System.Drawing.Size @(600,300);
$buttonPanel.Dock = "Bottom";

#Crate the cancel button ,which will anchor to the bottom right
$cancleButton = New-Object Windows.Forms.Button
$cancleButton.Text = "Cancel" ;
$cancleButton.DialogResult = "Cancel"
$cancleButton.Top = $buttonPanel.Height - $cancleButton.Height - 5;
$cancleButton.Left = $buttonPanel.Width - $cancleButton.Width - 10;
$cancleButton.Anchor = 'Right' ;

#Create the ok button, which will anchor to the left of cancel
$okButton = New-Object windows.Forms.Button ;
$okButton.Text = "OK"
$okButton.DialogResult = "OK" ;
$okButton.Top = $cancleButton.Top ;
$okButton.Left = $cancleButton.Left - $okButton.Width - 5;
$okButton.Anchor = 'Right' ;

#Add the buttons to the button panel
$buttonPanel.Controls.Add($okButton);
$buttonPanel.Controls.Add($cancleButton);
#add the button panel and list box to the form and also set the actions for the buttons
$form.Controls.Add($listbox);
$form.Controls.Add($buttonPanel);
$form.AcceptButton  = $okButton ;
$form.CancelButton = $cancleButton ;
$form.add_Shown({ $form.Activate() });

#show the form and wait for the response
$result = $form.ShowDialog();

#if the pressed oj or enter go through all the checked items and send the corresponding object down the pipeline
if($result -eq "OK")
{
 foreach($index in $listbox.CheckedIndices)
 {
   $objectArray[$index] ;
 }
}
}

分享到:
评论

相关推荐

    在PowerShell中创建Winform窗体,给PowerShell脚本添加GUI界面 - 示例

    本文介绍如何在PowerShell中创建窗体程序。 示例代码帮助读者更好的了解PowerShell中如何创建GUI界面。并且在示例代码中解决了几个关键问题:界面假死问题,添加事件问题以及如何使用代理等。 读者可以直接在次...

    Windows PowerShell系列课程(3):PowerShell在实际应用中的操作

    Windows PowerShell是Microsoft开发的一种命令行外壳程序和脚本环境,它为系统管理员和开发者提供了更强大的控制和自动化Windows操作系统的能力。本课程主要聚焦于PowerShell在实际工作场景中的应用,通过深入学习和...

    PowerShell在实际应用中的操作

    本视频教程将深入讲解PowerShell的实际应用操作,帮助你更好地理解和掌握这一工具。 首先,PowerShell的核心是其命令行接口,称为PowerShell提示符,它允许用户输入命令来执行各种任务。这些命令是PowerShell的 ...

    Windows.PowerShell应用手册.pdf

    7. 自动化和集成:解释PowerShell如何与其他系统和工具集成,实现跨平台和跨应用程序的自动化。 8. 实际案例和脚本示例:手册可能会提供实际场景的案例分析和示例脚本,帮助读者理解和应用PowerShell解决特定问题。...

    exchange/powershell,Java调用powershell开通邮箱

    - **socket**:这可能意味着Java程序通过Socket通信与PowerShell进程交互,即Java应用程序通过打开一个网络套接字连接到本地PowerShell实例,然后发送命令并接收响应。 在压缩包文件"exchange-master"中,可能包含...

    Windows PowerShell应用手册

    ### Windows PowerShell应用手册知识点概述 #### 一、引言 本书由Windows PowerShell团队开发人员Lee Holmes撰写,旨在为读者提供全面且深入的PowerShell使用指南。全书通过一系列实际应用场景来展示如何运用...

    Powershell创建事件中心报错1

    在Azure平台上,尽管这两个服务在功能上有所区分——事件中心主要用于大规模事件数据的收集和处理,而服务总线则提供消息传递和应用程序集成服务——但它们都构建在同一个命名空间基础之上。这意味着,当您创建一个...

    如何在使用Powershell创建应用程序池时启用32位,.NET框架,流水线模式?

    我想在使用Powershell创建应用程序池时启用32位,.net框架,管道模式。当前,我可以使用用户名和密码自定义帐户创建应用程序池。 但是没有启用Framework版本,启用32位,设置PipelineMode(经典/集成)...。

    PowerShellHandler:曾经想用 PowerShell 创建动态网页,就像使用 ASP、PHP 和 Python 所做的那样吗? 这是 PowerShell 脚本的 IIS 处理程序,允许您执行此操作

    这是在 IIS 中创建处理程序以运行 PowerShell 脚本而不是其他服务器端代码(如 ASP 或 PHP)的非常简单的示例。 脚本应以 tabkes 或自定义构建的 HTML 输出的形式输出 HTML 片段。 这可以用作使 PowerShell 报告...

    powershell批量建立AD账户脚本及模板

    在AD域控自动化方面,PowerShell提供了许多内建的Cmdlet(命令行操作),如`New-ADUser`,可以用来创建新的AD用户账户。 "adduser.csv"文件是这个自动化过程的数据源。这是一个CSV(逗号分隔值)文件,用于存储待...

    C#调用PowerShell

    在IT行业中,C#是一种广泛使用的编程语言,尤其在Windows平台上的...通过理解如何创建和使用`Runspace`、`Pipeline`和`Command`对象,开发者可以在C#应用程序中无缝地集成PowerShell命令和脚本,提升应用的功能和效率。

    Windows Powershell 应用手册 源码

    PowerShell是一种强大的命令行脚本环境,它整合了命令行工具和.NET Framework,允许管理员和开发者执行复杂的任务并创建自定义脚本。 1. **PowerShell基础知识**:PowerShell提供了一个基于对象的shell,它不同于...

    使用 powershell 创建虚拟机

    ### 使用Powershell创建Azure虚拟机的详细步骤 在当今高度数字化的工作环境中,云平台如Microsoft Azure变得越来越重要。为了高效地管理和利用这些资源,掌握正确的工具和技术至关重要。本篇文章将详细阐述如何使用...

    SAPIEN PowerShell Studio 2022它为PowerShell提供了一个高级的集成脚本和工具制作环境。

    解压密码:123 SAPIEN PowerShell Studio 2022是一个强大而有效的应用程序,它为PowerShell提供了一个高级的集成脚本和工具制作环境。 它是一个完整的和功能齐全的应用程序,提供了一个广泛的模板库和预连接控件,以...

    《Windows Powershell 2.0应用编程最佳实践》.pdf

    《Windows Powershell 2.0应用编程最佳实践》.pdf

    PowerShellCodeDomProvider:PowerShell 的 CodeDOM 提供程序

    创建 CodeCompileUnit 后,PowerShell CodeDOM 提供程序可以将其转换为 PowerShell 脚本。 例如: 至 PowerShell CodeDOM 提供程序还能够解析 PowerShell 脚本并返回 CodeCompileUnit,因此可以在 Powe

    Powershell批量创建目录.zip

    此外,这个脚本还可以进一步扩展,例如添加错误处理机制,当无法创建目录时进行记录或通知,或者添加权限设置,对新创建的目录应用特定的访问控制。 总结来说,"Powershell批量创建目录"是一个实用的自动化工具,...

Global site tag (gtag.js) - Google Analytics