Beim embedded brauchst du gbak nicht unbedingt, kopiere doch einfach die fdb-Datei?
Zum überprüfen, ob eine Datei in Verwendung ist, setze ich folgenden Code ein:
Delphi-Quellcode:
// Is a file currently in usage?
function IsFileInUse(fName : string) : boolean;
var
HFileRes : HFILE;
begin
Result := false;
if not FileExists(fName) then exit;
HFileRes :=
CreateFile(pchar(fName),
GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0) ;
Result := (HFileRes = INVALID_HANDLE_VALUE) ;
if (not Result) then CloseHandle(HFileRes)
end;
das kannst du ja ggf. in einer Schleife / Timer etc. prüfen, sobald die Funktion false ausgibt, kannst du kopieren.