MS 서버 2008에서 Excel 설치 프로그램의 문제점을 이해하고 진단하려고합니다. 아래 MWE를 참조하십시오. 이것은 내 승 노트북에서 잘 작동하지만 서버에서는별로 좋지 않습니다. 클린 로그인에서 처음에는 정상적으로 실행되지만 다음 작업은 오류 텍스트와 함께 실패합니다.Perl Win32 OLE Excel Server가 예외를 던진 이유를 이해하려고 시도했습니다.
Win32::OLE(0.1709) error 0x80010105: "The server threw an exception"
in PROPERTYPUT "DisplayAlerts" at mwe.pl line 20
첫 번째 실행은 excel.exe를 작업 관리자에 남겨 둡니다. 두 번째 실행은이 기존 인스턴스에 다시 연결하려고하지만 실패하는 것입니다. 제발 잘못되고있는 것을 어떻게 이해할 수 있습니까?
다른 방법으로, 스크립트가 끝나면 재실행으로 인해 새 인스턴스가 시작될 때 Win32 :: OLE에 의해 시작된 Excel 프로세스를 어떻게 죽일 수 있습니까?
내 MWE :
use strict;
use warnings;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3; # Die on Errors.
# use existing instance if Excel is already running
my $Excel;
eval {$Excel = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if [email protected];
unless (defined $Excel) {
print "another\n!";
$Excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Oops, cannot start Excel";
}
$Excel->{DisplayAlerts}=0;
$Excel->Quit();
undef $Excel;