在“GNU屏幕”下运行时Win32 :: OLE创建一个新实例

时间:2012-01-07 09:27:38

标签: perl cygwin ole gnu-screen

我试图通过Win32 :: OLE

访问OLE对象“Broker.Application”

应用程序“Broker.exe”已手动启动。

使用cygwin perl从bash shell运行以下代码段,它正确地附加到正在运行的实例“Broker.exe”

  $broker = Win32::OLE->new('Broker.Application') or die "Can't load Broker.Application";

但是当我从屏幕内部运行此片段时,它会创建一个新实例,如下所示

$ ps -W | grep -i broker
     1912       0       0       1912    ?    0 01:07:37 C:\Program Files\AmiBroker\Broker.exe       #Manually started
     3896       0       0       3896    ?    0 14:39:41 C:\PROGRA~1\AMIBRO~1\Broker.exe             #created by Win32::OLE from inside screen

尝试了Win32 :: OLE :: GetActiveObject()但没有任何帮助,因为即使实例正在运行它也会返回undef。

尝试使用SSH远程登录本机时,该脚本也会创建一个新实例而不是附加到正在运行的实例。

不确定从独立的bash shell和gnu屏幕内部运行这个perl脚本有什么不同。

请建议是否有任何解决方法从屏幕内部运行。

0 个答案:

没有答案