问题标签 [dsofile]

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 投票
1 回答
410 浏览

powershell - 使用 DSOFile 时出现 Powershell ShareViolation 错误

我正在尝试在 64 位系统上使用 DSOFile 从 Office 文件中获取 Office 元数据属性,而无需在系统上安装 Office。我注册了我在网上获得的64位版本,我第一次运行它就可以了。它第二次使 PS 控制台崩溃。考虑到我关闭它,我不知道它为什么会这样做。

(链接:http ://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6 )

代码:

错误:

编辑:

我通过在函数中创建一个对象来解决它,如下所示:

0 投票
1 回答
2057 浏览

c# - Exception calling .ctor with 0 arguments: Retrieving the COM class factory for component with CLSID {ID} failed. HRESULT: 0x80070005 (E_ACCESSDENIED)

Receiving this error when using Interop.DSOFile.dll functions and classes in powershell 5.1 (x86) running as a different user. The account I am using is an AD functional account which has full privilege to the folder containing the dll. I need to use this account as it has more access than my own AD account for the work required.

I am able to run the following code on my own user account without issue, but when attempting to use the functional account I get the error in the title.

Which results in the error:

New-Object : Exception calling ".ctor" with "0" argument(s): "Retrieving the COM class factory for component with CLSID {58968145-CF05-4341-995F-2EE093F6ABA3} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))." At line:1 char:1 + New-Object DSOFile.OleDocumentPropertiesClass + CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvoca tionException + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.Power Shell.Commands.NewObjectCommand

I checked that the CLSID exists and that I can see it using the functional account, and it is there:

I've tried to use solutions from similar Stackoverflow questions that reference using Dcomcnfg.exe\DCOM Config to give the account access. Com+ Configuration

  • Go to Control Panel - > Administrator -> Component Services -> DCOM Config
  • Open Microsoft Word 97 - 2003 Properties
  • General -> Authentication Level : None
  • Security -> Customize all 3 permissions to allow everyone

I've also added the AD function account to my local Administrator group, with no success.

0 投票
2 回答
2515 浏览

c# - 在现有文件的详细信息选项卡中添加/编辑新的扩展属性

我试着在 SO 上看这个,但所有试图回答的问题都没有提供完整的答案。

我实际上想将一个属性添加到现有文件的详细信息选项卡中。文件的扩展名为 sldprt。属性/值必须在 Windows 资源管理器中可见。

不确定如何使用 Windows API Code Pack Shell 或 DSOFile 完成此操作?任何其他解决方案也可以。

我在 Windows 10 上使用 VS、C#。

如果有人可以提供详细的解决方案,我将非常感激。

完美的解决方案是:

  • 通过 dsofile、ADS 或任何可能的方式将属性添加到文件中。
  • 编辑到 Windows 注册表或负责在文件属性的详细信息选项卡和 Windows 资源管理器中显示新属性的任何 Windows 部分
  • 显示如何编辑属性的值。

此问题的此答案不会将属性添加到详细信息选项卡或 Windows 资源管理器详细视图。

我认为这是可能的,因为 SOLIDWORKS(3d 包)向所有 SOLIDWORKS 文件添加了一个名为sw last saved with的属性。详细信息窗口中还有大量其他属性。

如果您没有正确的解决方案,请不要回答。非常感谢你。

我不确定这个问题是否与Add new metadata properties to a file重复。

预览:

在此处输入图像描述 在此处输入图像描述

编辑:

sldprt 扩展注册(仅供参考):

在此处输入图像描述

0 投票
0 回答
235 浏览

c# - 尝试解析 Word 文档,收到 COM 异常

这是我从文件中读取自定义属性的代码。这适用于所有文件类型。但显示System.Runtime.InteropServices.COMException (0x80004005):

2013年word文档

未指定的错误(来自 HRESULT 的异常:0x80004005 (E_FAIL))System.Runtime.InteropServices.COMException

关于word文档2003

(0x80030005):访问被拒绝。(来自 HRESULT 的异常:0x80030005 (STG_E_ACCESSDENIED))

功能DeleteCustomPropertyThroughDSO是否正确?我正在使用 DSOFile.dll x86 版本。

如果你指引我正确的方向,我会很高兴。先感谢您。我的问题是,DSOFile.dll 适用于 xlsx 和 pptx。问题仅适用于 Word 文档。

0 投票
0 回答
80 浏览

excel - DSOFile 函数是否仅适用于非二进制 Excel 文档类型?

使用 Windows 10(如果相关,请使用 Build 1903?)和 64 位 Office 365(可能相关?)我已经实现了一个允许我对 Excel VBA 代码进行版本控制的系统。

我正在使用该Workbook_BeforeSave方法检查当前文件是否保存,如果保存,则保存到哪里。

这可以正常工作,并会提示用户是否要更新其中包含的代码。然后我想也许我应该在提示用户之前检查代码是否“需要”更新。

首先,我发现了以下问题/解决方案:Using VBA to read the metadata or file properties of files in a SharePoint doc library

如果没有我可以从这里安装的 DSOFile.dll,我就无法使用它:

https://www.microsoft.com/en-us/download/details.aspx?id=8422

下面是我的代码不起作用:

这里(突出显示)是我尝试在 .xlsb 文件上运行上述方法时收到的错误:

错误信息

(FWIW:使用 .xlsb 格式的原因是因为我们在执行的过程中处理了 500K+ 行数据。是的,我知道 Excel 绝对不是用于此目的的工具,但我们被现在)

我知道我本可以尝试将文件格式更改为 .xlsm,但是因为该文件是受版本控制的,所以如果该方法仍然可能失败,这将是一件很痛苦的事情。

提前致谢,

亚历克斯。

0 投票
1 回答
18 浏览

ms-office - 使用 DSOFile 2.1 将自定义属性添加到 97/2003 MSOffice 文件 (xls/doc/ppt)

我正在尝试在 ppt 文件上添加自定义属性。但是收到的值(“güsiöçÇÖISÜG”)不等于发送的值(“ğüşiöçÇÖİŞÜĞ”)。

在此处输入图像描述

我遇到了这样一个奇怪的情况:

  • 通过 LibreOffice 打开 sample.ppt。
  • 保存(CTRL+S)并关闭,任何更改都不一定。
  • 再次运行代码。
  • 并且两个值相等

示例 ppt 文件在这里:https ://drive.google.com/drive/folders/1qTlREuLAAM-I0JIn-htPwLEUwRjQ9IiJ?usp=sharing

有没有人帮帮我,谢谢。