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/")

ファイルパスは設定し直して下さい。