私はWCF web servicesその自動化を作成していますinternet explorer。の同じインスタンスにアクセスする必要がある複数の Web サービス呼び出しがありますInternet Explorer。ただし、WCFサービスはホストされIISているため、Web サービスへのすべての呼び出しはセッション 0 で実行されます。同じインスタンスにアクセスするには、インスタンスのウィンドウ ハンドルを返すプロパティInternet Explorerを使用します。以下のコードでは、ウィンドウ ハンドルでサービスとして実行されると、セッション 0 の分離により常に 0 が返されます。また、同じインスタンスにフックバックしたり、開いているすべてのウィンドウをループしたりすることもできません。プロセス リストを列挙し、セッション 0 で開いている各ウィンドウのプロセス ID を見つけることはできますが、オブジェクトにキャストすることはできません。SHDocVw.InternetExplorer.HWNDInternet ExplorerWCFIIS 7IEIEIESystem.Diagnostics.ProcessSHDocVw.InternetExplorer
以下は私のコードです:
public int GetWhd()
{
InternetExplorer ie = new InternetExplorer();
ie.Visible = true;
return ie.HWND;
}
public int SetWhd(string whd)
{
int wh = Int32.Parse(whd);
InternetExplorer ie = null;
ShellWindows s = new ShellWindows();
foreach (SHDocVw.InternetExplorer ie1 in s)
{
try
{
if (ie1.HWND == wh)
{
ie = ie1;
break;
}
}
catch { return 2; }
}
if (ie != null) { ie.Navigate("www.google.com"); return 1; }
return 0;
}
どんな助けでも大歓迎です。