2

Microsoft Word OLE を使用し、渡したコンテンツに対してスペルチェックを実行する perl スクリプトを実行しています。ファイルまたはドキュメントを保存していないため、問題が発生しているため、Word を終了しようとすると、何かを保存するように要求されます ([名前を付けて保存] のプロンプト)。

このメッセージを非表示にするか、ドキュメントをだまして既に保存されていると思わせる必要があります。これは可能ですか、それとも別の解決策を考えられますか?

DisplayAlerts = 0 を試しましたが、それも役に立たないようです。

sub LaunchSpellcheck
{
#Check the version to see if there are updates.
checkVersion();

#Open up MS Word and only display the spellcheck box.
my $Word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application');
my @windows = FindWindowLike(undef,"Microsoft Word","");
SetActiveWindow(@windows[0]);
$Word->{'Visible'} = 0;

#Add a new document in word
my $TmpDocument = $Word->Documents->Add();
$TmpDocument = $TmpDocument->{Content};
#Add contents of clipboard to document
$TmpDocument ->{Text} = $clipboard->GetText();

#Check the spelling
$Word->ActiveDocument->CheckSpelling;
#Set the content of the file back to the clipboard.
$clipboard->Set($TmpDocument ->{Text});

#Hide save as dialog
$Word->{'DisplayAlerts'} = 0;
$Word->Quit;

MessageBox('The spellchecked content has been saved to your clipboard.','Spellcheck Complete');

#Log that the tool was used to the global log.
TrackUsage();
}
4

1 に答える 1

0

これは私のために働く:

my $Word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application');
$Word->{'DisplayAlerts'} = 0;
....
于 2013-10-29T02:06:41.097 に答える