Réponse acceptée !
Oui en effect il y a un petit problème avec certaine configuration d'Acrobat ...
L'application reste en tâche de fond après impression.
Voici un contournement au problème afin de supprimer la fenêtre Acrobat. Le problème est qu'il faut une tempo avant de supprimer l'application Acrobat ... cette tempo doit-être fonction de la taille du document à imprimer.
Voici un code qui fonctionne
unit UAcrobatAction;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtActns;
type
TfrmAcrobatAction = class(TForm)
btPrint: TButton;
edDoc: TEdit;
edExe: TEdit;
procedure btPrintClick(Sender: TObject);
private
FRunFile : TFileRun;
public
{ Déclarations publiques }
end;
var
frmAcrobatAction: TfrmAcrobatAction;
implementation
{$R *.dfm}
procedure TfrmAcrobatAction.btPrintClick(Sender: TObject);
Var
hwndAcrobat : HWND;
begin
// Impression sans ouverture d'accrobat
FRunFile := TFileRun.Create(Self);
Try
FRunFile.FileName := edDoc.Text;
FRunFile.Operation := 'print';
FRunFile.ShowCmd := scHide;
FRunFile.Execute;
Sleep(5000);
hwndAcrobat := FindWindow(nil, 'Adobe Reader');
if hwndAcrobat <> 0 then
PostMessage(hwndAcrobat, WM_DESTROY, 0, 0);
Finally
FRunFile.Free;
End;
end;
end.
vaughan