- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接到正在运行的 Excel 实例,但是当我尝试使用以下代码片段时:
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
public Application StartExcel()
{
Application instance = null;
try
{
instance = (Application)Marshal.GetActiveObject("Excel.Application");
}
catch (COMException ex)
{
instance = new ApplicationClass();
}
return instance;
}
error CS0117: 'Marshal' does not contain a definition for 'GetActiveObject'.
最佳答案
我们需要从源代码 GitHub.Microsoft 中提取 GetActiveObject(String ProgID) 函数
创建自己的类,例如 - Marshal2
并像以前一样使用
Marshal2.GetActiveObject(progID);
源代码
public static class Marshal2
{
internal const String OLEAUT32 = "oleaut32.dll";
internal const String OLE32 = "ole32.dll";
[System.Security.SecurityCritical] // auto-generated_required
public static Object GetActiveObject(String progID)
{
Object obj = null;
Guid clsid;
// Call CLSIDFromProgIDEx first then fall back on CLSIDFromProgID if
// CLSIDFromProgIDEx doesn't exist.
try
{
CLSIDFromProgIDEx(progID, out clsid);
}
// catch
catch (Exception)
{
CLSIDFromProgID(progID, out clsid);
}
GetActiveObject(ref clsid, IntPtr.Zero, out obj);
return obj;
}
//[DllImport(Microsoft.Win32.Win32Native.OLE32, PreserveSig = false)]
[DllImport(OLE32, PreserveSig = false)]
[ResourceExposure(ResourceScope.None)]
[SuppressUnmanagedCodeSecurity]
[System.Security.SecurityCritical] // auto-generated
private static extern void CLSIDFromProgIDEx([MarshalAs(UnmanagedType.LPWStr)] String progId, out Guid clsid);
//[DllImport(Microsoft.Win32.Win32Native.OLE32, PreserveSig = false)]
[DllImport(OLE32, PreserveSig = false)]
[ResourceExposure(ResourceScope.None)]
[SuppressUnmanagedCodeSecurity]
[System.Security.SecurityCritical] // auto-generated
private static extern void CLSIDFromProgID([MarshalAs(UnmanagedType.LPWStr)] String progId, out Guid clsid);
//[DllImport(Microsoft.Win32.Win32Native.OLEAUT32, PreserveSig = false)]
[DllImport(OLEAUT32, PreserveSig = false)]
[ResourceExposure(ResourceScope.None)]
[SuppressUnmanagedCodeSecurity]
[System.Security.SecurityCritical] // auto-generated
private static extern void GetActiveObject(ref Guid rclsid, IntPtr reserved, [MarshalAs(UnmanagedType.Interface)] out Object ppunk);
}
关于c# - 从 System.Runtime.InteropServices.Marshal C# 中找不到 GetActiveObject 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58010510/
我正在使用 Fabric.js 并尝试为图像和文本元素实现复制功能。我找到了两个关于如何复制对象的解决方案: 方法一 stage.getActiveObject().clone(); 方法二 fabr
我正在使用 Microsoft.Office.Interop.Excel.Application oExcelApp = (Microsoft.Office.
我需要用 C# 完成一个应用程序。 现在我想得到一个控制Excel文件获取数据的函数。 我使用了 getActiveObject("Excel.Application"),但这没有返回任何结果。我不能
全部: 我在将一些 VBA 代码转换为 C# 时遇到了一些问题。 我们有一个充当本地 COM 服务器的第 3 方应用程序。 在 VBA 代码中,我们使用 GetObject() 获取对现有对象的引用
我想检查 Canvas 上所选图像的图像质量。 我的以下代码: var canvas = $(".canvas-container").children('canvas').get(0); //con
在不单击 Canvas 区域的情况下,我想在将文本添加到 Canvas 后对其进行更改。在我的代码中,我必须先选择 Canvas 文本,然后在输入文本区域时更改它。这是我的代码://html
我一直在使用 itunes 启动 try: itapp= win32com.client.Dispatch('iTunes.Application') except: itapp= w
当 Visual Studio 未以管理员身份启动时,此代码在 release r 调试中运行没有问题。 Marshal.GetActiveObject("Outlook.Application");
我正在尝试使用 F# 自动执行一些 Excel 任务。我实际上有两个问题:1. 如果我使用 Excel.Application 实例打开工作簿,我将错过刚刚在 Excel 中打开工作簿时自动加载的所有
下面的 vbscript 代码工作得很好: Dim App Set App = GetObject("","QuickTest.Application") App.Quit 但是当我将它翻译成如下 C
目前我的代码使用 SurferApp = Marshal.GetActiveObject("Surfer.Application") as Surfer.Application 获取一个叫做surfe
GetActiveObject() 方法在 .NET Framework 的 System.Runtime.InteropServices.Marshal 中可用,但在 .NET Core ( htt
我正在尝试连接到正在运行的 Excel 实例,但是当我尝试使用以下代码片段时: using Microsoft.Office.Interop.Excel; using System.Runtime.I
我打算从外部应用程序开始一个 Outlook 交互的新项目(邮件主题操作、从 Re: Fw: 清除主题等。添加主题标签、在外部数据库中研究主题标签等)。我习惯于调用 Marshall.GetActiv
我是一名优秀的程序员,十分优秀!