perl win32 ole timeout

时间:2012-06-13 19:53:09

标签: perl excel winapi ole

我使用perl和Win32 :: OLE来自动执行某些Excel任务。由于Excel文件太大,因此这个过程需要相当长的时间才能完成...但是在一夜之间离开之后,我认为它因“超时”问题而陷入困境。如果我减小文件大小,那就没关系。

无论如何要增加超时?

我的代码部分:

#   Open the rules file
my $xlBook = $xlApp->Workbooks->Open("$file");
my $xlSheet = $xlBook->Worksheets(1);

#Replace FALSE -> 0
$xlSheet->Cells->Replace ({ What => "FALSE", Replacement => "0" });
#Replace TRUE -> 1
$xlSheet->Cells->Replace ({ What => "TRUE", Replacement => "1" });

1 个答案:

答案 0 :(得分:1)

更改自动超时的方法是致电CoRegisterMessageFilter注册IMessageFilter实施以处理COM呼叫,例如call OLEUIBusy to display a server busy dialog

我不认为Win32 :: OLE实现了这一点,您可以尝试将CoRegisterMessageFilter代码包装在进程内COM服务器中,并在服务器中注册消息过滤器。