2013-05-29 3 views
2

Прежде чем открывать какое-либо слово или документ Excel, я хотел бы знать заранее, если документ защищен паролем, и если это так, я хочу пропустить его.Есть ли способ в Perl проверить, защищен ли пароль?

Я использую Win32 :: OLE, чтобы открыть файл.

+3

Проверьте это http://stackoverflow.com/questions/568924/how-can-i-suppress-excels-password-prompt-in-perl – Raghuram

ответ

0

Способ заключается в попытке открыть документ с использованием фиктивного пароля.

Это метод, который я пробовал.

my $Word = Win32::OLE->new('Word.Application'); 

if(!$Word){ 
    # Word can't be opened, exit or return false 
} 

my $Doc; 
eval{$Doc = $Word->Documents->Open("Path to your doc",undef,undef,undef,"thisIsPassword");}; 
if([email protected]){ 
    # Document opening failed, exit or return false 
} 
if(!$Doc){ 
    # File doesn't exists, exit or return false 
} 

my $var = Win32::OLE->LastError() ; 
if($var){ 
    # File may be password protected, exit or return false 
} 
unless ($Doc eq '') { 
    # Do whatever... 
} 
Смежные вопросы