Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Agregar una impresora en tiempo de ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=721)

fanon 22-05-2003 15:53:51

Agregar una impresora en tiempo de ejecucion
 
Hola, tengo otro problemilla,jejejej, bueno la cuestion es que tengo un visor LCD y cuando apago el pc y vuelvo a encenderlo, en el programa todo lo que le mando al visor no se ve o se ven simbolos raros, lo que tengo que hacer a continuacion, es instalar una impresora generica por el port com2 y mandarle a imprimir algo, cualquier texto, despues de sto, mi programa ya funciona correctamente y el visor muestra lo que le mando. Hay alguna forma de agregar una impresora en tiempo de ejecucion de mi aplicación o como puedo agregarla en un fichero o .ini o como podria solucionar estoooooo. GRacias de antemano, un salu2 a todos. arrevoire

__cadetill 26-05-2003 10:16:20

Hola fanon

Normalmente los visores necesitan de un codigo de escape para inicializarlos (o a lo mejor llevan algun programa o driver para ello). Mirate la documentacion a ver.

De todas maneras, para crear una impresora seria algo asi

Código:

Procedure AddImpresora( PrinterName, PortName, DriverName,
                      PrintProcessor: string );
var
  pName    : PChar;
  Level    : DWORD;
  pPrinter : PPrinterInfo2;
begin
    pName := nil;
    Level := 2;
    New(pPrinter);
    try
        pPrinter^.pServerName := nil;
        pPrinter^.pShareName := nil;
        pPrinter^.pComment := nil;
        pPrinter^.pLocation := nil;
        pPrinter^.pDevMode := nil;
        pPrinter^.pSepFile := nil;
        pPrinter^.pDatatype := nil;
        pPrinter^.pParameters := nil;
        pPrinter^.pSecurityDescriptor := nil;
        pPrinter^.Attributes := 0;
        pPrinter^.Priority := 0;
        pPrinter^.DefaultPriority := 0;
        pPrinter^.StartTime := 0;
        pPrinter^.UntilTime := 0;
        pPrinter^.Status := 0;
        pPrinter^.cJobs := 0;
        pPrinter^.AveragePPM :=0;

        pPrinter^.pPrinterName := PCHAR(PrinterName);
        pPrinter^.pPortName := PCHAR(PortName);
        pPrinter^.pDriverName := PCHAR(DriverName);
        pPrinter^.pPrintProcessor := PCHAR(PrintProcessor);
        // 1802 -> Este código de Error nos indica que la impresora ya existe.
        if (AddPrinter(pName, Level, pPrinter) = 0) and (GetlastError <> 1802) then
        begin
            Raise Exception.Create('La Impresora no se pudo crear');
        end;
    finally
            Dispose(pPrinter);
    end;
end;

Lo malo del método es que necesitas tener los drivers de la impresora en el sistema

Espero te sirva


La franja horaria es GMT +2. Ahora son las 13:54:42.

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