Кто-нибудь знает, как я могу отправить факс с помощью Windows 8 Fax true Delphi. Я имею в виду, что мне нужно запустить Windows Fax с номером и вложением в формате PDF. Любой учебник об этом? Спасибо.
Delphi в Windows факс
Ответы (1)
Например, вы можете использовать Fax Service COM Interfaces
. Для простой манипуляции вы можете импортировать библиотеку типов из библиотеки fxscomex.dll
и использовать такой код (на основе this example
):
uses
ComObj, ActiveX, FAXCOMEXLib_TLB;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
JobIDs: OleVariant;
FaxServer: IFaxServer2;
FaxDocument: IFaxDocument2;
begin
try
FaxServer := CoFaxServer.Create;
FaxServer.Connect('');
FaxDocument := CoFaxDocument.Create;
FaxDocument.Body := 'd:\Document.pdf';
FaxDocument.DocumentName := 'Document name';
FaxDocument.Recipients.Add('+1 (425) 555-4567', 'Bill');
FaxDocument.Sender.Name := 'Bob';
FaxDocument.Sender.BillingCode := '23A54';
FaxDocument.Sender.Department := 'Accts Payable';
FaxDocument.Sender.FaxNumber := '+972 (4) 555-9070';
JobIDs := FaxDocument.ConnectedSubmit(FaxServer);
for I := VarArrayLowBound(JobIDs, 1) to VarArrayHighBound(JobIDs, 1) do
ShowMessage('Job ID: ' + VarArrayGet(JobIDs, [I]));
except
on E: EOleSysError do
ShowMessage(
Format('Sending of the fax failed! %s [%d]', [E.Message, E.ErrorCode])
);
end;
end;
Или то же самое без библиотеки типов:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
JobIDs: OleVariant;
FaxServer: OleVariant;
FaxDocument: OleVariant;
begin
try
FaxServer := CreateOleObject('FaxComEx.FaxServer');
FaxServer.Connect('');
FaxDocument := CreateOleObject('FaxComEx.FaxDocument');
FaxDocument.Body := 'd:\Document.pdf';
FaxDocument.DocumentName := 'Document name';
FaxDocument.Recipients.Add('+1 (425) 555-4567', 'Bill');
FaxDocument.Sender.Name := 'Bob';
FaxDocument.Sender.BillingCode := '23A54';
FaxDocument.Sender.Department := 'Accts Payable';
FaxDocument.Sender.FaxNumber := '+972 (4) 555-9070';
JobIDs := FaxDocument.ConnectedSubmit(FaxServer);
for I := VarArrayLowBound(JobIDs, 1) to VarArrayHighBound(JobIDs, 1) do
ShowMessage('Job ID: ' + VarArrayGet(JobIDs, [I]));
except
on E: EOleSysError do
ShowMessage(
Format('Sending of the fax failed! %s [%d]', [E.Message, E.ErrorCode])
);
end;
end;
person
TLama
schedule
25.02.2013
Еще один вопрос. Я получаю факс-модем для проверки сценария, как я могу проверить, присутствует ли модем?
- person Sardukar; 26.02.2013
Это может быть хорошей темой для нового вопроса, но вы можете использовать что-то вроде этого, чтобы определить общий количество доступных факсимильных устройств на локальном компьютере (но не их состояние).
- person TLama; 26.02.2013