Tag: interop

如何在将图片插入word文档后更改图片的大小

我正在将图片添加到某个书签的word文档中。 但是,图片太大并且正在强制文本离开页面,所以我需要能够在word文档中更改图片的大小。

如何调用Windows API

可能重复: Windows API和.net语言 我想从.NET Framework调用本机Windows API。 我希望有一个简单的方法,我可以像其他.NET API一样从高级层调用本机API。 请参阅您知道的任何资源。 任何帮助将不胜感激。

c#MSOffice Interop Word不会杀死winword.exe

我正在编写一个需要MSWord文档解析器的应用程序。 我正在使用Microsoft.Office.Interop.Word.Document从文档中提取文本,但即使我使用doc.Close()文件,从taskManager我可以看到winword.exe没有被杀死,并且在解析之后几十个文件,它吃掉了一些资源。 是close()错误的方法? 请帮助我,并指出如何正确终止这些过程的正确方向。 =) ~~~更新~~~ 谢谢你的帮助。 我使用app.quit()并运行一个循环来检查进程并解决问题! =)

C# – 以编程方式推进Powerpoint幻灯片放映的方式?

我希望能够通过按Windows窗体中的按钮来推进Powerpoint演示。 以下是我从http://bytes.com/topic/c-sharp/answers/272940-open-powerpoint-presentation-c-window-form中找到的一些代码,它打开了一个Powerpoint演示幻灯片: Microsoft.Office.Interop.PowerPoint.Application oPPT; Microsoft.Office.Interop.PowerPoint.Presentations objPresSet; Microsoft.Office.Interop.PowerPoint.Presentation objPres; //the location of your powerpoint presentation string strPres = @”filepath”; //Create an instance of PowerPoint. oPPT = new Microsoft.Office.Interop.PowerPoint.ApplicationClass(); // Show PowerPoint to the user. oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoTrue; objPresSet = oPPT.Presentations; //open the presentation objPres = objPresSet.Open(strPres, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue); objPres.SlideShowSettings.Run(); 但是,我没有找到任何可以通过幻灯片前进的方法。 有任何想法吗? (我真正想做的是使用WiiRemote推进幻灯片,为学生项目)。

从闭源第三方Win32应用程序中的窗口捕获数据

我打算创建一个C#Windows Forms应用程序作为第三方Win32应用程序的扩展,但我现在对如何执行此操作感到困惑。 我得到的最远的是知道它涉及Win32 Hooking,并且有一个名为EasyHook的开源项目应该允许我这样做。 我想知道如何从文本框中获取文本或从第三方Win32应用程序中的控件获取其他数据。 当用户按下按钮时,将从外部应用程序的运行窗口捕获控件中的文本/数据。 我想问题可归纳如下: 当用户点击某个按钮时,如何确定要挂钩的事件? 如何在单击按钮时获取Win32控件显示的值?

在不使用COM的情况下从C ++调用C#方法

有没有办法创建C#对象并从非托管C ++调用方法,但没有使用COM Iterop? 我正在寻找像JNI(但对于.Net)这样的东西,你可以手动创建VM,创建对象等。

可以/如何在C#WPF应用程序中托管完整的VB6表单?

我目前正在探索使用C#将一些旧的VB6应用程序移植到WPF的选项。 该计划在第一阶段是移植几个关键forms而不是所有应用程序。 理论上的目标是通过ActiveX dll在WPF中的某种容器中打开VB6表单。 这有可能吗? 我试过看Interop,似乎找不到一个可靠的例子,说明如何使用Win32控件,而不是完整的表单。 我可以完全访问旧的VB6代码,并且无论如何都可以修改它。 主WPF应用程序的以下屏幕截图将用作包装器/容器: http://sofzh.miximages.com/c%23/main_menu_mockup.png 当前VB6维护屏幕将加载到上一屏幕右侧的“空白区域”部分。

异步可插拔协议

使用此作为参考,我正在尝试创建一个异步可插入协议,该协议仅暂时可用于我的应用程序(而不是在系统范围内注册)。 我正在使用CoInternetGetSession ,然后调用RegisterNameSpace来完成它。 但是,当我调用RegisterNameSpace我得到一个AccessViolationexception: Attempting to read or write protected memory 。 知道发生了什么事吗? 我的代码如下所示: [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid(“00000001-0000-0000-C000-000000000046”)] [ComVisible(true)] public interface IClassFactory { void CreateInstance(IntPtr pUnkOuter, ref Guid riid, out IntPtr ppvObject); void LockServer(bool fLock); } /* Custom class to act as a class factory that create’s an instance of the protocol */ [Guid(“0b9c4422-2b6e-4c2d-91b0-9016053ab1b1”)] [ComVisible(true),ClassInterface(ClassInterfaceType.AutoDispatch)] public […]

C ++和C#互操作性:P / Invoke与C ++ / CLI

在找到C#和C ++之间的互操作方法的过程中,我发现这篇文章解释了P / Invoke。 我读了很多文章声称C ++ / CLI不是精确的C ++,需要一些努力来修改原始的C ++代码。 我想问一下,当我想要从C#对象中使用一些C ++对象(代码/数据)时,最佳方法是什么。 看起来为了使用P / Invoke,我应该提供C风格的API。 这是真的吗? 我的意思是,有没有办法将C ++对象导出到C#,如带有P / Invoke的SWIG? 或者,我是否必须将SWIG用于此目的? 将C ++更改为C ++ / CLI有多难? 与将C ++重写为C#相比,是否值得尝试? C ++设计得很好,所以将它实现到C#并不是很重要。 (关于主题问题)还有其他方法吗? 我的意思是,如果我想使用C ++中的C#代码,有没有办法这样做?

如何知道原生方法是安全/不安全的?

我实现了这个函数: GetSystemPowerStatusEx和GetSystemPowerStatusEx2 根据MSDN上的这篇文章,我应该创建一个根据我将使用的函数命名的类,但我的问题是:我怎么知道我应该把哪个类放入GetSystemPowerStatusEx和GetSystemPowerStatusEx2? 我迷路了… 感谢帮助。 [编辑]我的问题是:这三个类名中哪一个对我来说是好的(NativeMethods / SafeNativeMethods / UnsafeNativeMethods)? 这些方法应该属于以下类之一: NativeMethods – 此类不会抑制非托管代码权限的堆栈遍历。 (System.Security.SuppressUnmanagedCodeSecurityAttribute不能应用于此类。)此类适用于可在任何地方使用的方法,因为将执行堆栈遍历。 SafeNativeMethods – 此类禁止堆栈遍历非托管代码权限。 (System.Security.SuppressUnmanagedCodeSecurityAttribute应用于此类。)此类适用于任何人都可以安全调用的方法。 这些方法的调用者不需要执行完整的安全性审查,以确保使用是安全的,因为这些方法对任何调用者都是无害的。 UnsafeNativeMethods – 此类禁止堆栈遍历以获取非托管代码权限。 (System.Security.SuppressUnmanagedCodeSecurityAttribute应用于此类。)此类适用于潜在危险的方法。 这些方法的任何调用者都必须执行完整的安全性检查,以确保使用是安全的,因为不会执行堆栈遍历。