perl win32 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" }); 

更改自动超时的方法是调用CoRegisterMessageFilter注册您的IMessageFilter实现来处理COM调用,例如, 调用OLEUIBusy来显示服务器忙碌对话框 。

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