私はDelphiのアプリでこのコード行を持っている:WindowsシェルおよびCitrix
Citrixセッションを介して実行sh := CoShellWindows.Create;
が、これは例外を発生させない「十分な記憶域がこの操作を完了します。」
誰かが私がCitrixを通じてこれにアクセスできないという疑惑を確認できますか?違いがあれば、私はシームレスモードで走っています。おそらく、公開されたアイコンを変更する必要がありますか?
私は、作成するCitrixに "Shell"がないと推測しています。
おかげ
EDIT
CoShellWindows単にIShellWindows interface実装するオブジェクトを作成するクラスです。このインターフェイスは、Internet Explorerのインスタンス(またはより具体的にはIWebBrowser2インターフェイスを実装するアイテム)を探すアイテムを反復するために使用されます。
CoShellWindowsを使用するユースケースシナリオはいくつかありますが、すべてが最終的にIWebBrowser2インターフェイス(Internet Explorer 8)と対話するために使用されます。私の要件は、このIWebBrowser2オブジェクトを取得することです。舞台裏
コールは、以下のパラメータを使用してWindows APIのCoCreateInstanceを呼び出す:
- rclsid = {9BA05972-F6A8-11CF-A442-00A0C90A8F39}( IShellWindowsのCLSID)
- pUnkOuter = NULL(NIL)
- dwClsContext = CLSCTX_ALL(私はこれら フラグの様々な組み合わせを試してみた)
- RIID = {85CB6900-4D95-11CF-960C-0080C7F4EE85}(IShellWindowsのIID)
- PPV =型IShellWindowsとして宣言された変数
例:CoCreateInstanceを(CLASS_ShellWindows、ゼロ、CLSCTX_ALL、IID_IShellWindows、SH)
私はあなたを助けるかもしれませんが、私はデルファイについて何も知らない - CoShellWindowsとは何ですか?公開されたアプリケーションでは、シェル(デスクトップなど)はありません。 –
このCoShellのことは分かりませんが、メインのアプリから外部の.batと.exeプログラムを実行できることを確認できます。 Citrixのアイコンから実行されるDelphiアプリケーションがあり、それは外部の.exeプログラムである多くのレポートを実行します。 –