Internet Explorer のキオスク モード ウィンドウに Flash プロジェクトを表示する必要があるプロジェクトに取り組んでいます。さらに、Flash はソケットを使用して、Flash 自体では実行できないさまざまなタスクについて C# アプリケーションと通信します。これらのタスクの 1 つは、PDF を開いて前面に表示することです。フラッシュのセキュリティにより、ネットワーク モードまたはローカル モードの選択が強制されるため、フラッシュは PDF を直接開くことができず、このプロジェクトではネットワークが唯一の選択肢です。
私が抱えている問題は、IE 8 を使用する Windows XP です。キオスク モードは、Internet Explorer を最小化したり、PDF を前面に表示したりするための Shell32 コマンドと競合しているようです。これを Windows 7 で動作させることができました (Vista をテストできません) が、Windows XP では一貫して動作するようには見えません。
次のように C# プロセスを使用してウィンドウを起動します。
explorerProcess = new Process();
explorerProcess.StartInfo = new ProcessStartInfo("IEXPLORE.EXE", "-k file:\\\\" + path);
explorerProcess.Start();
エクスプローラーが開き、キオスク モードになります。次にPDFを開きます。
pdfProcess = new Process();
pdfProcess.StartInfo = new ProcessStartInfo(fileName);
pdfProcess.Start();
最後に、Shell32.dll コマンドの ShowWindow を使用して、PDF の最大化を呼び出し、ユーザーにその PDF への注意を促します。
ShowWindow(pdfProcess.Handle, SW_MAXIMIZE);
Windows 7 では、PDF が最大化され、キオスク モードの Internet Explorer ウィンドウが PDF の背後にあります。このようにして、PDF を閉じると、ユーザーはキオスク モードのウィンドウに戻ります。Windows XP では、PDF はバックグラウンドで開かれ、ShowWindow 呼び出しの量が Explorer インスタンスより前に表示されるようには見えません。Explorer インスタンスを最小化しようとしましたが、IE や PDF で表示/非表示/復元などの他の Windows イベントを実行して、XP を必要なものに誘導しようとしましたが、成功しませんでした。これが本当に XP のせいなのか、XP で IE9 と IE8 を使用している Windows 7 (私にとって) のせいなのかはわかりません。
他の誰かがこれに遭遇したか、XP をだまして PDF を前面に出すための回避策を知っていますか?