问题标签 [comobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2371 浏览

powershell - 如何使用特定文件名(get-childitem)而不是循环通过 ComObject 命名空间项来提取元数据

我找到了多个代码片段来滚动浏览文件夹并显示文件夹中每个项目的元数据,如下所示:

但在我的脚本中,我想使用 Get-ChildItem 遍历文件夹,对于选定的文件,我想使用 getDetailsOf() 来提取 MS Office 文档的作者。

那么,知道文件名(例如:$strFileName,我可以跳过 $objFolder.items() 中的每个 $strFileName 的循环,而只访问 $sFileName 的作者的元数据详细信息(其中 $a = 20)吗?

我已经看到它是使用“New-Object -ComObject word.application”完成的,但我相信它会打开文档,所以在一个有许多文件被用户锁定的大型文件系统上,这可能会很慢而且很痛苦。

我可以直接跳到我选择的文件名的 $objFolder.items() 的索引吗?

0 投票
0 回答
162 浏览

c# - 为什么 Resharper 抱怨 Worksheet 对象的“可能‘null’分配给标有‘NotNull’属性的实体”而不是其他对象?

我有这段代码可以在 Excel 互操作应用程序中发布一些 COM 对象:

在另一个地方,我还发布了那里使用的表:

这一切都工作得很好,但是 Resharper Inspect > Code Issues in Solution在对Excel.Worksheet对象的两个 ReleaseComObject() 调用(但不是对工作表、工作簿或应用程序对象)。它们的定义如下:

是什么让 Worksheet 如此 [un] 特别?更重要的是,我应该为他们删除 ReleaseComObject() 代码吗?并使用其他东西来释放它们?

注意: VVS在此处对“如何正确清理 Excel 互操作对象”问题的接受回答,有 474 个赞成票,确实显示以这种方式发布的工作表......?!?

更新

好的,我听从了 MethodMan 的建议(谁不会,有这样的绰号?),现在我有了:

0 投票
1 回答
344 浏览

excel - PowerShell - 使用多个 ComObjects 不稳定?

我正在编写一个脚本,打开一个表格并将其从 excel 复制到 word,但每次运行的结果都不同。一开始它做得很好,但经过几次运行后,开始出现烦人的红色文本(尤其是“调用被调用者拒绝”和选择对象的方法,如 $wordObject.Selection.TypeParagraph 无法运行,因为 $wordObject.Selection 变为空值表达。

我在关闭它们后尝试 ReleaseComObject 但问题仍然存在

这是因为我在同一部分使用两个 ComObject 吗?我的脚本结构如下:

关闭并退出:

这是错误 在此处输入图像描述

任何想法?

*更新:奇怪的是,脚本在我办公室的电脑上运行没有任何错误,但在我的笔记本电脑上却没有 =.=

0 投票
0 回答
676 浏览

powershell - 开始作业等待作业不适用于 copy.here

我正在尝试将文件复制到 zip 文件中。我使用 start-job 和 wait-job 来等待复制过程完成,但它根本不起作用。这是我调用接收作业时的错误:

这是我的代码

任何想法?

更新

@PetSerAI,我也尝试将该 COM 对象放入工作中,但它也不起作用。Receive-job 没有显示任何内容。以下是新代码:

0 投票
1 回答
3923 浏览

powershell - Powershell -comobject wscript.shell 换行语法

我正在编写一个脚本,该脚本设置一些变量并弹出一个窗口,其中显示这些变量并带有确认按钮。我能够进入窗口以显示文本,后跟一个变量,但无法弄清楚在通知窗口中转到下一行的语法。

我尝试了 `n 的不同组合,但无法弄清楚。

提前致谢

0 投票
1 回答
2307 浏览

powershell - 创建每周运行 6 天的计划任务

我正在尝试在TaskScheduler模块之前使用 PowerShell 创建一些计划任务,这不是一个选项,因为这将用于在外部客户端计算机上运行进程。因此我不能使用 cmd 因为我每次都需要指定凭据。

我已经深入研究了comobject,但我并不真正理解这一点。如果我能找出触发器,我会非常乐意使用它,基本上我需要它在每天的特定时间每周运行 6 天(不包括周日)。

我想我已经把行动和论点放下了,但这是我努力理解的触发器。

这是我正在处理的块,它从这里被解放出来,所以所有的功劳都在那里!

0 投票
0 回答
10 浏览

comobject - App ID - 确认所有权的替代方法

我已经在 IOS 和 android 中启动了一个应用程序,但是这个应用程序来自 como.com,它充当了我们网站的包装(所以我们实际上是一个使用 como 将我们作为应用程序的网站)。

我想制作一个应用付费广告,但是我无法安装所需的代码,因为我们不拥有该应用(只有网站)。当我们使用第三方托管它时,我是否有办法确认应用程序的所有权?

感谢您的时间

卢克

0 投票
1 回答
77 浏览

c# - 访问 Range.Start in Loop 提高了比较器的性能

我遇到了一个非常奇怪的问题。因此,背景是我们在 WordContentControl和自定义对象之间建立了映射,我们使用该对象来存储与该控件内的内容相关的一些信息。我们使用 aSortedList<ContentControl, OurCustomObject>来维护这个映射。SortedList 部分对于能够找到下一个/上一个内容控件以及能够快速访问与内容控件关联的对象很有用。

为了进行设置,我们执行以下操作:

这似乎工作得很好,但我最近在一个包含约 5000 个内容控件的文档上尝试了它,它减慢到绝对爬行(实例化 SortedList 3 分钟以上)。

所以这已经够奇怪了,但更多的奇怪还在后面。我添加了一些日志记录来弄清楚发生了什么,ContentControl并发现在列表中使用它们之前记录每个的开始可以加快大约 60 倍。(是的,添加日志记录加快了速度!)。这是更快的代码:

SortedList 的构造函数调用Array.Sort<TKey, TValue>(keys, values, comparer);字典的键和值。我不明白为什么事先在循环中访问 Range 对象会加快速度。也许与访问它们的顺序有关?foreach 循环将按照它们在文档中出现的顺序访问它们,而 Array.Sort 将四处跳跃。

编辑:当我说 SortedList 时,我的意思是System.Collections.Generic.SortedList<TKey, TValue>. 这是我正在使用的构造函数的代码:

0 投票
1 回答
3024 浏览

c# - 如何将 System.__ComObject 转换为字符串?

QVObject.GetType()返回一个System.__ComObject。如何将此结果保存为string?

0 投票
1 回答
1172 浏览

c# - 如何在整个加载项应用程序中保留单个 Redemption.rdosession 对象

在我的 Outlook 插件中,每次需要使用 rdoSession 对象时,我都会创建新的 rdoSession 对象并设置 mapi 对象,如下所示。

Redemption.RDOSession session = Redemption.RedemptionLoader.new_RDOSession(); session.MAPIOBJECT = outlookApplicaitonObject.Session.MAPIOBJECT;

是否有可能在全局范围内拥有一个静态 Redemption.rdoSession 对象,所以我可以在想使用它的时候调用它?我声明了一个静态 RdoSession 对象,它有时会引发以下异常。

无法将“System.__ComObject”类型的 COM 对象转换为接口类型“Redemption.IRDOSession”。此操作失败,因为 IID 为“{E54C5168-AA8C-405F-9C14-A4037302BD9D}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:加载类型库/DLL 时出错。(来自 HRESULT 的异常:0x80029C4A (TYPE_E_CANTLOADLIBRARY))

这是什么原因,是否有可能做我想做的事情?