Inno Setup LoadStringFromFile falla cuando el archivo está abierto en otro proceso

Para verificar si una base de datos (SQL Anywhere) está activada y lista para recibir solicitudes, estoy enviando la ventana del mensaje de la base de datos a un archivo de registro (texto) y luego intento leer esto usandoLoadStringFromFile, que luego busco texto específico usandoPos. El problema es que esto falla (supongo) ya que el archivo está en uso.

  Exec(strInstallPath + '\Bin32\dbeng17.exe', '-n ' + strEngineName + ' "' + strInstallPath + '\Database\Olympus.db" -n ' + strDatabaseName + ' -gdall -xtcpip -ti0 -c25p -ot "' + strTempPath + '\dbeng.log"', '', SW_HIDE,
    ewNoWait, intResultCode);
  if not LoadStringFromFile(strTempPath + '\dbeng.log', astrDatabaseEngineLog) then
    begin
      Log('Loading string from file failed.');
    end;

También he intentado copiar el archivo de registro usandoFileCopy e intentar leer de la copia del archivo, peroFileCopy También falla.

  if not FileCopy(strTempPath + '\dbeng.log', strTempPath + '\dbengcopy.log', False) then
    begin
      Log('File copy failed.');
    end;

¿Hay alguna forma de leer un archivo que está en uso u otra forma de hacerlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta