Из нашего приложения мы используем OLE-автоматизацию для создания довольно сложного Word-документа. Я хотел бы сделать Word невидимым во время создания документа, так как существует много вставок и вставок, которые занимают довольно много времени.
Я использую следующий код для установления соединения Word:
function ConnectToWord : TWordAutomationResult;
begin
WordApp := TWordApplication.Create(nil);
try
WordApp.Connect;
WordApp.Visible := false;
except on E: Exception do
begin
Result := waeErrorConnectingToWord;
exit;
end;
end;
end;
И я использую следующий код для открытия существующего документа, который затем редактируется моим приложением.
function TWordAUtomation.OpenDocument(aFileName: string) : WordDocument;
var vFileName,
vConfirmConversions,
vReadOnly,
vAddToRecentFiles,
vPasswordDocument,
vPasswordTemplate,
vRevert,
vWritePasswordDocument,
vWritePasswordTemplate,
vFormat,
vEncoding,
vVisible,
vOpenConflictDocument,
vOpenAndRepair,
vWdDocumentDirection,
vNoEncodingDialog : OleVariant;
begin
Result := nil;
if not FileExists(aFileName) then exit;
vFileName := aFileName;
vConfirmConversions := True;
vReadOnly := False;
vAddToRecentFiles := False;
vPasswordDocument := EmptyParam;
vPasswordTemplate := EmptyParam;
vRevert := True;
vWritePasswordDocument := EmptyParam;
vWritePasswordTemplate := EmptyParam;
vFormat := wdOpenFormatAuto;
vEncoding := EmptyParam;
vVisible := False; //Document should be invisible
vOpenConflictDocument := EmptyParam;
vOpenAndRepair := EmptyParam;
vWdDocumentDirection := EmptyParam;
vNoEncodingDialog := EmptyParam;
Result := WordApp.Documents.Open(vFileName, vConfirmConversions, vReadOnly, vAddToRecentFiles, vPasswordDocument, vPasswordTemplate, vRevert, vWritePasswordDocument, vWritePasswordTemplate, vFormat, vEncoding, vVisible, vOpenAndRepair, vWdDocumentDirection, vNoEncodingDialog);
end;
Это работает на моем компьютере! (TM)
Для некоторых наших клиентов Word остается видимым в процессе редактирования. Какие могут быть причины для этого? Насколько я могу судить, проблема возникает у клиентов, которые используют какие-то виды удаленных вычислений, например, управляемые клиенты и т. Д. Существуют ли дополнительные свойства, связанные с видимостью приложений, которые действуют только при подключении к удаленному рабочему столу и т. Д.? Я не очень осведомлен о таких вещах: - (