J'ai la tâche suivante. Il est nécessaire d'attendre la fin de l'édition Microsoft Office files.I utiliser la prochaine approche classique: fichier est le fichier vidéo tout est occupé:Attendez jusqu'à ce que l'édition d'un fichier se termine
function FileIsBusy(AFileName: string): Boolean;
var
F: Integer;
begin
F := FileOpen(AFileName, fmShareExclusive);
Result := F = -1;
FileClose(F);
end;
function WaitFile(AFileName: string; ASpeepDelay: integer): Boolean;
begin
while FileIsBusy(AFileName) do
Sleep(ASpeepDelay);
Result := True;
end;
Cette approche du bon travail avec le fichier d'édition par Microsoft Word, pas dans Open Office. OpenOffice utilise un processus pour les fichiers à multiplicité ouverte, tout comme MS Office. Mais avec OpenOffice Writer ont quelques problèmes: fonction FileIsBusy retourne false juste après premier fichier d'enregistrement par OpenOffice Writer. Avez-vous des suggestions?
============================
Je trouve la solution suivante:
repeat
WaitFile(FFileInfo.lpFile, 333);
Sleep(1000);
until not FileIsBusy(FFileInfo.lpFile);
Après conservation , ОО libère un fichier pour un certain temps et encore exclusivement partager
J'utilise ProcessMonitor. OpenOffice verrouille le fichier jusqu'à la première sauvegarde. –