gpt4 book ai didi

delphi - Windows Shell 和 Citrix

转载 作者:行者123 更新时间:2023-12-03 15:53:06 25 4
gpt4 key购买 nike

我的 Delphi 应用程序中有这行代码:

sh := CoShellWindows.Create;

当通过 Citrix session 运行时,这会引发异常“没有足够的存储空间来完成此操作。”

有人可以证实我的怀疑,即我无法通过 Citrix 访问此内容吗?如果这有什么区别的话,我正在无缝模式下运行。也许我需要对已发布的图标进行一些更改才能使其正常工作?

我猜测 Citrix 中没有要创建的“Shell”。

谢谢

编辑

CoShellWindows只是一个类,它创建一个实现 IShellWindows interface 的对象。然后,该接口(interface)用于迭代其项目以查找 Internet Explorer 的实例(或更具体地说,是实现 IWebBrowser2 接口(interface)的项目)。

还有一些使用 CoShellWindows 的其他用例场景,但最终都用于与 IWebBrowser2 界面 (Internet Explorer 8) 交互。我的要求是获取这个IWebBrowser2对象。

该调用在幕后使用以下参数调用 Windows API CoCreateInstance:

  • rclsid = {9BA05972-F6A8-11CF-A442-00A0C90A8F39}(CLSIDIShellWindows)
  • pUnkOuter = null(无)
  • dwClsContext = CLSCTX_ALL(我已经尝试过这些的各种组合标志)
  • riid = {85CB6900-4D95-11CF-960C-0080C7F4EE85}(IShellWindows 的 IID)
  • ppv = 声明为 IShellWindows 类型的变量

例如:CoCreateInstance(CLASS_ShellWindows, nil, CLSCTX_ALL, IID_IShellWindows, sh)

最佳答案

您的异常“没有足够的存储空间来完成此操作。”真正应该阅读“Shell 不存在,因此无法创建实例”

基本上,您的假设是正确的,即 Citrix 中无需创建 shell。

你用 shell 做什么?如果您提供更多信息,我们很可能能够提供完整的解决方案。

关于delphi - Windows Shell 和 Citrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com