WatiNを利用してIEを操作するPowerShell用スクリプトを、.Netのプログラム上で読み込んで実行する。
- System.Management.Automation.dll
- WatiN.Core.dll
を参照に追加する。
VB.Netのコード
Form1にButtonを配置しておく。
Imports System.Management.Automation Imports System.Management.Automation.Runspaces Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim runspaceConfiguration__1 As RunspaceConfiguration = RunspaceConfiguration.Create() Dim runspace As Runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration__1) runspace.ApartmentState = System.Threading.ApartmentState.STA runspace.ThreadOptions = PSThreadOptions.UseCurrentThread runspace.Open() Dim invoker As New RunspaceInvoke() invoker.Invoke("Set-ExecutionPolicy Unrestricted") Dim pipeline As Pipeline = runspace.CreatePipeline() Dim myCmd As New Command("C:\Users\mikihiro\Desktop\201205\Watin.ps1") 'Dim param As New CommandParameter("responseCollection", test) 'myCmd.Parameters.Add(param) pipeline.Commands.Add(myCmd) ' Execute PowerShell script Dim results As ObjectModel.Collection(Of PSObject) = pipeline.Invoke() End Sub End Class
Watin.ps1
[System.Reflection.Assembly]::LoadFile("C:\Users\mikihiro\Documents\Visual Studio 2010\Projects\WatiN-2.1.0.1196\source\src\WindowsApplication1\bin\Release\WatiN.Core.dll") $ie = New-Object WatiN.Core.IE $ie.GoTo("http://www.moderns.co.jp/trade/")
ファイルパスは設定し直して下さい。
環境
- Windows 7(64bit)
- PowerShell 2.0
- Visual Studio 2010 Professional
http://stackoverflow.com/questions/8336800/c-sharp-passing-an-array-to-a-powershell-script