PDA

Ver la Versión Completa : Agregar una impresora en tiempo de ejecucion


fanon
22-05-2003, 15:53:51
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


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