0

私は現在、Janus Systems の GridEx2000b コントロールを使用する vb6 で開発されたレガシー アプリケーションのテストを自動化しています。

これを行うために、テスト自動化を開発するためのお気に入りのツールとして Ranorex を使用しているため、C# を使用してテスト コードを開発できます。

私の問題は、GridEx 2000b コントロールを自動化することです。これは、Ranorex がすぐに使用できるものではありません。したがって、コントロール用に見つけることができる Win32 ハンドルを使用して GrixEx コントロールを参照できるソリューションを見つけようとしているので、コンポーネントから ComInterface を使用してコントロールを自動化できます。

解決策のアイデアはありますが、それを行う方法がわかりません。皆さんが私を助けてくれることを願っています.

問題の擬似コード:

using GridEX20;

class GridExWrapper
{
    public GridEX20.GridEXClass Instance;

    public GridExWrapper(IntPtr win32handle)
    {
        Instance = (GridEX20.GridEXClass)Win32ControlUtilities.GetControlReference(win32Handle);
    }
}


class Win32ControlUtilities
{
    public static SomeKindOfHandle GetControlReference(IntPtr win32Handle)
    {
        ...
        ...
        ...
    }
}

Ranorex またはその他のスパイ ツールから win32handle を取得します。次に、このように GridExWrapper を使用できます。

using NUnit.Framework;

class Program
{
    [Test]
    public void control_should_have_9_items()
    {
        /// Get win32 handle from Ranorex
        IntPtr win32handle = XXXXXX;
        int expectedItemCount = 9;

        GridEXClass control = new GridExWrapper(win32handle);
        Assert.AreEqual(expectedItemCount, control.ItemCount);
    }

}
4

1 に答える 1