|
|
1
4
.NET应用程序可以在任何UAC完整性级别(包括系统级和低级)运行。 但是一个进程只有一个完整性级别(将完整性列添加到 Process Explorer 查看流程在完整性级别上的分布)。 如果尝试运行另一个Outlook实例,它只会将现有实例置于视图中,它会主动阻止两个实例运行。Word和Excel没有。 这些共同解释了你所看到的。当您实例化Word或Excel应用程序对象时,将以匹配的完整性级别运行新的工作或Excel进程。如果对Outlook执行此操作,并且Outlook已在运行,则它将尝试附加到现有进程。但这将失败,除非Outlook已经在高完整性下运行。您应该能够通过以管理员身份运行Outlook(即高完整性)并运行应用程序以附加到它来验证这一点。 要求用户以管理员身份运行Outlook是一个糟糕的主意(由于来自未知方的电子邮件附件存在风险,以高完整性运行Outlook只会导致恶意软件感染)。 最好的方法(这就是explorer等的方法)是将流程分成两部分,使用com标记只提升真正需要提升的应用程序部分。关于如何执行此操作,请参见本问题: How to UAC elevate a COM component with .NET |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |