Ich glaube, mit einem Trick kannst du doch das Dokument schliessen: öffne mit [DocOpen("%s")] doch das gleichnamige schon geöffnete Dokument und schliesse es wieder mit [DocClose("%s")]. Das hat bei mir funktioniert.
Ein Hinweise noch: du muss " für die Namensabgrenzung nehmen und nicht ' wie du es gemacht hast.
Peter
Zitat von
Peter Sawatzki:
DocClose kann nur die mit DocOpen geöffneten Dokumente schliessen, niemals die von einem User geöffneten oder die von FileOpen(Ex) geöffneten Dokumente. Dies ist auch in der Acrobat 8
SDK Doku beschrieben.
Peter
----------------
Habe den Code-Schnipsel mal ausprobiert - der Acrobat Reader (7.0.9) weigert sich immer noch hartnäckig, das geöffnete, gleichnamige PDF zu schließen.
Delphi-Quellcode:
var
DDEClientConv1 : TDDEClientConv;
befehl : array[0..256] of char;
fn: TFileName;
...
try
fn := 'AntragDVRDV.pdf';
//befehl := Format('[DocClose(''%s'')]', [fn]);
StrPCopy(befehl, Format('[DocClose(''%s'')]', [fn]));
DDEClientConv1 := TDDEClientConv.Create(nil);
DDEClientConv1.ExecuteMacro(befehl, True);
finally
DDEClientConv1.CloseLink;
DDEClientConv1.Free;
end;
Sieht eigentlich so aus, als müßte es funktionieren, aber irgendetwas passt noch nicht. Hat jemand eine zündende Idee?