【发布时间】:2012-10-10 20:54:46
【问题描述】:
来自以下调用
Marshal.GetActiveObject("Excel.Application")
我得到一个
操作不可用(HRESULT 异常:0x800401E3 (MK_E_UNAVAILABLE))
我认为这个错误是由于我的应用程序和excel之间的用户权限不匹配造成的。
我想知道是否有一种解决方法,无论如何打开 excel,我都可以访问打开的 excel 应用程序,我可以以管理员身份打开我想从中访问 excell 的程序。
另外我想知道如何知道打开了哪些权限进程?我一直在使用 ProcessExplorer 查看 UserProfile(在两个应用程序中都相同)和 Owner(也是相同的 BUILTIN\Administrators)
背景 我有一个程序通过调用 NUnit-console-x86 来运行不同的测试。正在测试的应用程序打开一个 excel 表单,这是我要从中读取数据的表单。当我以管理员身份运行程序时,或者没有出现这些错误,我也尝试添加 Process.StartInfo.Verb = "runas";到我启动 NUnit 的程序,但我仍然收到这些错误
虽然我不想在每台计算机上都安装 Visual Studio,但安装 Visual Studio 似乎可以解决问题。 谁能给我解释一下?
【问题讨论】:
-
我刚刚经历了 Excel 的权限噩梦,一旦我将 Excel 的兼容模式设置为以管理员身份运行以及调用应用程序以管理员身份运行,一切正常。
-
这个问题我遇到过很多次了,我发现如果遇到错误,在Skype和Excel之间来回切换,就可以了……