' ' Copyright (c) 2006 Microsoft Corporation. All rights reserved. ' ' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ' ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ' THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A ' PARTICULAR PURPOSE. ' Imports System Imports System.Collections Imports System.Collections.ObjectModel Imports System.Windows.Forms Imports System.Management.Automation.Runspaces Imports System.Management.Automation Namespace Microsoft.Samples.PowerShell.Runspaces Class Runspace02 Shared Sub CreateForm() Dim form As New Form() Dim grid As New DataGridView() form.Controls.Add(grid) grid.Dock = DockStyle.Fill ' Create an instance of the RunspaceInvoke class. ' This takes care of all building all of the other ' data structures needed... Dim invoker As New RunspaceInvoke() Dim results As Collection(Of PSObject) = _ invoker.Invoke("get-process | sort-object ID") ' The generic collection needs to be re-wrapped in an ArrayList ' for data-binding to work... Dim objects As New ArrayList() objects.AddRange(results) ' The DataGridView will use the PSObjectTypeDescriptor type ' to retrieve the properties. grid.DataSource = objects form.ShowDialog() End Sub 'CreateForm ''' ''' This sample uses the RunspaceInvoke class to execute ''' the get-process cmdlet synchronously. Windows Forms and data ''' binding are then used to display the results in a ''' DataGridView control. ''' ''' Unused ''' ''' This sample demonstrates the following: ''' 1. Creating an instance of the RunspaceInvoke class. ''' 2. Using this instance to invoke a PowerShell command. ''' 3. Using the output of RunspaceInvoke in a DataGridView ''' in a Windows Forms application '''