我目前正在使用COM自动化应用程序,并且如果在应用程序运行时原始应用程序已经打开,任何使用我的应用程序的人都有问题。我知道如何确定流程是否开放,但不必担心关闭流程或解决流程等问题,我想尝试使用现有的应用程序,而不是打开新的应用程序。通过Windows进程句柄访问COM对象
这是我常在我的自动化程序启动应用程序:
Designer.Application desApp = new Designer.Application();
现在我试图尝试从现有的应用程序中使用手柄:
Designer.Application desApp = (Designer.Application)((System.Diagnostics.Process.GetProcessesByName("Designer.exe")[0]).Handle)
(我知道这是行不通的,因为.Handle
返回一个IntPtr
,但我用它作为例子。)
有什么方法可以完成这个?如果我知道句柄/过程,如何返回可用对象?