问题标签 [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.
internet-explorer - 使用 COM 对象 (PowerShell) 中的开关启动 IE
我需要做两件事。一种是在我锁定某些元素(例如隐藏地址栏)之前隐藏 IE,第二种是使用 -noframemerging 开关启动它。这有助于在 Citrix 环境中交付与 Web 相关的 App-V 包。
我知道可以使用组策略来实现锁定,但是启动 IE 的环境需要为每个 IE 实例设置锁定,而不是作为一个全面的设置。
我已经使用 New-Object -ComObject InternetExplorer.Application 在 PowerShell 中创建了一个 IE COM 对象并设置了各种属性来创建一个锁定的环境,我可以让 IE 启动以更改可见属性。
然而,这会启动一个 iexplore.exe 实例,而无需任何开关。是否可以使用此 COM 对象作为模板使用 -noframemerging 开关启动 IE?
任何帮助,将不胜感激。
干杯,
马特
c# - Excel.Workbook.SaveAs() 在 C# 中单击“否”进行文件替换时引发异常
我的小型控制台工具尝试读取一个 excel 文件并根据设定的标准创建新文件。
问题:当存在文件名冲突时(同名文件已经存在),程序应该生成一个唯一名称的文件。但是现在出现一条消息,带有“是/否/取消”消息框来保存文件。如果用户单击 NO 则抛出异常。消息如下:
例外:
以下行引发异常
代码如下:
上述方法在以下方法中被调用:
我到底在哪里做错了?
c++ - 无法在 .net 中创建 com 对象实例
尝试在 .net 中为没有管理员权限的用户创建 com 对象时出现以下错误。
具有 CLSID {6CA9DEBE-BA91-4E56-9CD3-D40FE0755204} 的组件的 COM 类工厂失败,原因是以下错误无法检索:800704ec 此程序被组策略阻止。申请获取您的系统管理员以获取更多信息。(来自 HRESULT 的异常:0x800704EC)。
代码如下图:
动态对象=空;尝试 { 尝试 { var ComType = Type.GetTypeFromProgID("XenReports.XenReportsX"); obj = Activator.CreateInstance(ComType); } catch(Exception) { throw new Exception(TextMessageProvider.GetText(ResourceKeys.XenReportErrorMessage)); }
请让我知道是否有人遇到过这个问题。Com 对象用于 C++ exe。
visual-studio-2013 - '类型 x 存在于两个 dll 中' SAME dll + 强制转换为正确的对象类型返回 null?
一些信息:我正在使用 .Net 4.5,并尝试扩展Visual Studio 2013
.
这行代码工作正常,我得到一个对象
类型是,根据观察窗口:
Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt
但是,当我尝试使用此语句强制转换为这种类型时
我越来越空
奇怪的部分:
当我尝试在监视窗口上投射时,我收到了这个搞笑的错误消息:
The type 'Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt' exists in both
'Microsoft.VisualStudio.TeamFoundation.VersionControl.dll' and 'Microsoft.VisualStudio.TeamFoundation.VersionControl.dll'
如您所见 - 它是同一个DLL!
我试过用dynamic
,然后我得到了RuntimeBinderInternalCompilerException An unexpected exception occurred while binding a dynamic operation
。
我正在使用的参考文献列表:
我的结论:
我很确定这是由于我使用了一些错误的引用而发生的。知道如何找到它们吗?
附带问题:如何遍历 COM 对象(如 DTE/DTE2)以获取有关“活动”实例及其属性的信息?
c# - 如何在 C# 中从 Active Directory 中获取 System.__ComObject 值
经过长时间的搜索,我决定就我的问题提出自己的问题。
我尝试在 Active Directory 中获取属性的值,但我总是得到一个System.__ComObject。
我试过使用:
结果是PropertyValueCollection
但我不知道如何获得价值?
vb.net - 为什么handles.exe 没有发现我的DLL 而ProcessExplorer 可以?
问题:在 Windows Server 2012 r2 机器上,我正在尝试使用 Chef 以编程方式替换 .dll 命令组件(也就是我使用 regsvr32.exe 在机器上注册的 vb 6 库)但是当我尝试复制该文件,该网站的应用程序池对其进行了锁定。我不确定这是否重要,但 w3wp 进程设置为通过 IIS 以 32 位运行。
我的解决方案(不起作用):为了修复它,我正在考虑使用命令行工具来查找对 dll 的引用,然后回收正在使用它的应用程序池。不幸的是,虽然我可以让 SysInternals 的进程资源管理器找到 dll,但 Handles.exe(进程资源管理器的假定命令行版本)没有返回任何内容。我希望有人能告诉我我是如何错误地使用手柄的,或者是否有更好的工具。
Process Explorer - 它找到了我的 dll ComHelper.dll
通过命令行处理 - 它没有找到我的 dll ComHelper.dll
-- 编辑 -- 这是当我以管理员身份运行时将其指向 w3wp 时的句柄输出
c# - 无法从 C# 中的 COM 对象获取最后一个错误
我的C#
代码:
结果是:
“错误编号:0 错误消息:”
我的问题是功能GetLastError()
。Number
并且msg
应该包含这个函数执行后的errornumber
和。message
但他们还在empty
。
有人可以帮助我吗?
* 编辑 *
我将以下代码作为 VBScript 执行:
这个带有 cscript 的 VBScript 工作正常。我也得到错误信息和号码。所以 GetLastError() 方法有效。
internet-explorer - Web 抓取脚本仅在第一次尝试失败后才有效
我有一个用于在 Internet Explorer 中自动执行任务的脚本。但是该脚本只有在第一次失败后才有效。
如果我打开powershell.exe
并运行脚本,它会给我错误
无法在空值表达式上调用方法。
但如果我F5再次点击并运行它,它从那时起就可以完美运行。如果我关闭 PowerShell 并重新打开,错误会在第一次尝试时再次出现。
脚本的逻辑基本上是这样的
代码失败上线
我尝试添加默认的 webclient,但没有任何改变。
c# - 将 TextBox 类型的 COMObject 转换为 C# 对象
我目前正在开发一个与客户端通信的应用程序。如下所示,我有一个委托方法,它将接收到的消息作为 TextBox 类型的 ComObject 返回。
到目前为止,我没有成功地尝试强制转换 ( ComObj1
as TextBox),并试图让IntPtr
forComObj1
作为参数传递 Marshal.GetObjectForNativeVariant()
,但都无济于事。
我的问题是我应该如何ComObj1
转换为 C# 对象?
powershell - 创建 Windows Vault 凭据并将其链接到 Outlook - Powershell
经过很多小时研究这个问题的解决方案但还没有找到它,想也许你可以帮助我......
我正在尝试自动化邮件迁移过程,在客户端我正在创建 Outlook 配置文件(PRF 文件,来自办公室自定义工具),然后更新设置等,最后我将数据导出到 pst到目前为止,Outlook com 对象(outlook.interop)很好,问题是当我创建配置文件并启动 Outlook 时,如果我检查“记住密码”,我会得到“要求凭据”窗口来输入用户/密码",然后 windows 将其保存到保管库凭据。
现在我想在启动 Outlook 之前预先创建凭据,因此 Outlook 开始时无需询问凭据并在保管库中找到它,但是当我在保管库中手动创建凭据时,Outlook 不使用它并要求输入密码,我尝试使用 cmdkey /generic:MS.Outlook:user@domain.com /user:$email /pass:$pass- 不起作用,我发现:当我通过 Outlook 凭据对话框保存密码时,它会使用那个特定的用户密钥,所以其他用户看不到它,反之亦然,当我手动创建凭据时,它使用当前登录的用户作为加密密钥,所以当 Outlook 打开时它无法识别密码,所以我认为这个这就是为什么不工作的原因,就像 powershell securestring 只在加密它的当前用户上工作一样。(但这只是我目前的看法)
所以,也许你们中的一个人知道如何:
自动创建凭据并将其链接到 Outlook 配置文件/帐户,或者:以不同用户的身份创建凭据,另外,我将调用命令视为不同的用户,然后执行“cmdkey”,但计算机域不一样作为我的本地计算机,
欢迎任何想法,如果可能的话,也可以通过 Outlook com 对象、注册表、脚本等等,这对我的项目非常重要,同时我使用 shell.sendkey 自动填充用户密码,但它确实不是稳定的解决方案。