C# 获取主机,但主机应用程序关闭时
以下代码获取主机应用程序(在本例中为CorelDraw应用程序),如果CorelDraw正在运行且exe由CorelDraw运行,则主机应用程序将正确运行:C# 获取主机,但主机应用程序关闭时,c#,C#,以下代码获取主机应用程序(在本例中为CorelDraw应用程序),如果CorelDraw正在运行且exe由CorelDraw运行,则主机应用程序将正确运行: Corel.Interop.CorelDRAW.Application appDRAW = new Corel.Interop.CorelDRAW.Application(); app = (Application)this.Host; 但是由于一些复杂的原
Corel.Interop.CorelDRAW.Application appDRAW =
new Corel.Interop.CorelDRAW.Application();
app = (Application)this.Host;
但是由于一些复杂的原因,我需要在没有corel运行的情况下运行这段代码,但我不会使用应用程序实例,除非corel正在运行,否则我可以通过任何方式获取主机应用程序的名称或类似的内容,或者只是在主机应用程序运行之前指向其exe
也许像
app = (Application) getHostByExe("c:\corelPath\corel.exe");
还有建议,这个问题为我解决了
Dim obj As Object
Dim app As c.Application
obj = GetObject("", "CorelDRAW.Application")
app = CType(obj, c.Application)
但是interop调用的全部要点是,你不必知道主机在哪里,它的文件名,在没有corel运行的情况下让代码正常工作是什么意思?我的意思是,我希望代码被接受和遵守,在运行时,我将确保corel正在运行,这样代码就不会出现错误,Interop不会阻止它编译。你是说你想要一种检查Corel是否会运行的方法,而不是简单地调用它,看看它是否失败?