问题标签 [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.
powershell - 使用 DSOFile 时出现 Powershell ShareViolation 错误
我正在尝试在 64 位系统上使用 DSOFile 从 Office 文件中获取 Office 元数据属性,而无需在系统上安装 Office。我注册了我在网上获得的64位版本,我第一次运行它就可以了。它第二次使 PS 控制台崩溃。考虑到我关闭它,我不知道它为什么会这样做。
(链接:http ://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6 )
代码:
错误:
编辑:
我通过在函数中创建一个对象来解决它,如下所示:
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.
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 扩展注册(仅供参考):
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 文档。
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,但是因为该文件是受版本控制的,所以如果该方法仍然可能失败,这将是一件很痛苦的事情。
提前致谢,
亚历克斯。
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
有没有人帮帮我,谢谢。