perl win32 ole timeout
Я использую 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 ответ
Способ изменить время ожидания автоматизации - вызвать CoRegisterMessageFilter, чтобы зарегистрировать вашу реализацию IMessageFilter для обработки COM-вызовов, скажем, вызвать OLEUIBusy, чтобы отобразить диалоговое окно занятости сервера.
Я не думаю, что Win32::OLE реализует это, вы можете попробовать обернуть код CoRegisterMessageFilter в внутрипроцессный COM-сервер и зарегистрировать фильтр сообщений на сервере.