Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2008
User_Baja_2 User_Baja_2 is offline
Miembro
 
Registrado: may 2003
Posts: 126
Poder: 22
User_Baja_2 Va por buen camino
Buenas tardes nuevamente,

Tras varias pruebas y leer en la página de microsoft llego a la conclusión que si lo que quieres es programar el servicio de fax en windows XP, el propio delphi al ir a importar las librerias te especifica la libreria fxscomex.dll, sin embargo si necesitas instalar en un Pc con windows 2000 entonces en el delphi al ir a importar estas librerias no las vas a encontrar porque el win2000 tiene otro enlace y otro modo de funcionamiento y hace referencia a Faxcom.dll.(lo denomina exactamente: Faxcom 1.0 Type Library (Version 1.0) creando en la pestaña activex los siguientes componentes:

TFaxTiff
TFaxServer
TFaxPort
TFaxPorts
TFaxRoutingMethod
TFaxRoutingMethods
TFaxStatus
TFaxDoc
TFaxJobs
TFaxJob

Al código anterior, en lugar de usar Ifaxdocument se le denomina IFaxDoc y al Ifaxserver si se le denomina igual, quedandome dicho código de la siguiente manera:

uses FAXCOMLib_TLB; (debemos añadir en el uses dicha llamada)

procedure TForm1.Button1Click(Sender: TObject);
var
vlserver: IFaxServer;
vlDocument : IFaxDoc;
Begin
vlserver := CoFaxServer.Create;
vlDocument := CoFaxDoc.Create;
vlserver.Connect('');
vlDocument.filename:='C:\prueba.pdf';
vlDocument.FaxNumber:='123456789';
vlDocument.Send;
vlserver.Disconnect;
end;

Llegado a éste punto consigo que todo me compile correctamente pero... me encuentro con la sorpresa de un error al llegar a la linea CofaxDoc.Create porque dice que no encuentra esta clase registrada. Por más que lo he revisado lo encuentro perfectamente registrado todo, si acudo a la unidad FAXCOMLib_TLB.Pas puedo ver que todo está perfectamente declarado y de hecho compila perfectamente. He registrado la libreria faxcom.dll

regsvr32 C:\WINDOWS\system32\faxcom.dll

Obteniendo como resultado un mensaje del tipo

DllRegisterServer in C:\WINDOWS\system32\faxcom.dll succeeded

Comprendo que está correctamente pero desconozco si necesito registrar alguna más y por ello la clase ifaxdoc me falla porque del mismo modo la clase ifaxserver no me produce ningún tipo de fallo.

¿alguna idea respecto a éste nuevo problema?

Quizá tal como explique anteriormente se puede intentar que un WIN2000 pueda acceder a la libreria de fxscomex.dll y forzar su instalacion, pero no he obtenido ningun resultado positivo al intentar enviar un fax en un PC con win2000, que es lo que me interesa, siempre se produce el error:

"connection to fax server failed"

Desconozco cual seria el siguiente paso a seguir para poder "engañar" también he copiado dicha libreria en C:\windows\System32\ y la he registrado de igual modo que la de faxcom.dll pero en ningún caso consigo enviar. Por ello opte por probar por la propia opción que trae el windows 2000.

Por si hay alguien con el mismo problema y quiere leer sus instrucciones correspondientes en microsoft aqui dejo el enlace:

http://msdn.microsoft.com/en-us/library/ms692281.aspx

Si alguien pudiera darme alguna idea, ejemplo, estaria muy agradecida pues llevo días trabajando con esto sin lograr ningún resultado positivo.

Muchas gracias

Nuppy
Responder Con Cita
  #2  
Antiguo 17-10-2008
User_Baja_2 User_Baja_2 is offline
Miembro
 
Registrado: may 2003
Posts: 126
Poder: 22
User_Baja_2 Va por buen camino
buenas tardes de nuevo,

Quisiera confirmar el que código que expuso mgomez2 para windows XP funciona correctamente pero no en windows 2000, yo al menos no he logrado "engañar" al windows para que me deje hacerlo funcionar correctamente.

Si alguien posee algun ejemplo, código o alguna idea para poder hacerlo funcionar en 2000 seria de gran ayuda.

Muchas gracias

Nuppy
Responder Con Cita
  #3  
Antiguo 22-10-2008
mgomez2 mgomez2 is offline
Registrado
 
Registrado: abr 2007
Posts: 9
Poder: 0
mgomez2 Va por buen camino
Hola Nuppy, buscando otra cosa he encontrado esto, echale un vistazo, a ver si te sirve.

Te lo transcribo aqui:

Código Delphi [-]function SendFax(filename : String; number : String) : Integer; var Srv : FAXCOMLib.FaxServer; var Doc : FAXCOMLib.FaxDoc; begin Srv := FaxServerClass.Create(); Srv.Connect(nil); srv.Retries := 5; Doc := FAXCOMLib.FaxDoc(Srv.CreateDocument(filename)); Doc.FaxNumber := trim(number); SendFax := Doc.Send(); srv.Disconnect; end;
Responder Con Cita
  #4  
Antiguo 23-10-2008
User_Baja_2 User_Baja_2 is offline
Miembro
 
Registrado: may 2003
Posts: 126
Poder: 22
User_Baja_2 Va por buen camino
Hola Mgomez,

Agradezco tu código, pero ésto ya lo he probado, yo también busqué información en hilos al respecto, pero el problema que tengo es que al menos la libreria que yo poseo de faxcom.dll cuando la he importado al delphi, tal como explique anteriormente en este hilo del foro, no me es util porque por ejemplo, he aqui el código de mi unidad integro: (Tengo windows 2000 profesional)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
private
function SendFax(filename, number: String): Integer;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses FAXCOMLib_TLB;

{$R *.DFM}

function TForm1.SendFax(filename : String; number : String) : Integer;
var Srv : FAXCOMLib.FaxServer;
var Doc : FAXCOMLib.FaxDoc;
begin
Srv := FaxServerClass.Create();
Srv.Connect(nil);
srv.Retries := 5;
Doc := FAXCOMLib.FaxDoc(Srv.CreateDocument(filename));
Doc.FaxNumber := trim(number);
SendFax := Doc.Send();
srv.Disconnect;
showmessage('Ha finalizado el proceso de envío');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SendFax('C:\prueba.pdf','123456789');
end;


end.

Cuando compilo me da error en var Srv : FAXCOMLib.FaxServer;
y cuando quito faxcomlib de delante el fallo me da en FaxServerClass, de hecho entro en la unidad importada unit FAXCOMLib_TLB; que tengo en la carpeta de "imports" dentro de delphi y esta unidad no contiene ninguna declaración de faxserverclass... deduzco que si hay varias personas que han utilizado este código existe otra libreria o bien me falta la declaración algún otro uses que desconozco,

Espero poder haber explicado mejor mi error para poder asi conocer cual es la solución,

Un saludo

Nuppy
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tecla de control+Z y Escape para poder enviar SMS a través de un Modem vejerf Varios 3 25-04-2008 17:09:54
Intercambiar XML´s a través de una pág. ASP bataola Internet 0 13-09-2006 16:30:01
Enviar una estructura de datos a traves de Socket en Delphi ygkw API de Windows 3 29-06-2006 21:53:48
conectar a través de ssh barrauda Linux 2 29-05-2006 12:57:44
Enviar email a través de Outlook Express kambiz Internet 9 20-10-2004 22:58:12


La franja horaria es GMT +2. Ahora son las 18:10:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi