Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1563 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi 6]Status imprimante via API windows...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[delphi 6]Status imprimante via API windows...

n°616372
wam
Posté le 20-01-2004 à 10:33:03  profilanswer
 

Bonjour tt le monde
 
J'ai 1 petit prog qui recupere certaines infos des imprimantes connectees sur le pc(usb,lpt etc...)
Mais j'ai 1 probleme pr recuperer le status de l'imprimante (online, offline, impression en cours, plus de papier etc....)
 
Mon code :
 

Code :
  1. function TForm1.GetPrinterInfo2(NumPrinter: Integer; param:String): string;
  2. var
  3.   ADevice, ADriver, APort: array[0..100] of Char;
  4.   HDeviceMode, HPrinter: THandle;
  5.   PrinterInfo2: PPrinterInfo2;
  6.   Size: DWORD;
  7. begin
  8.   param:=AnsiUppercase(Param);
  9.   //ZeroMemory(@ADevice, SizeOf(ADevice));
  10.   // Get the device name of the current printer
  11.   //Printer.GetPrinter(ADevice, ADriver, APort, HDeviceMode);
  12.   // Initialise some memory for the TPrinterInfo2 structure
  13.   Size := 0;
  14.   GetMem(PrinterInfo2, Size);
  15.   try
  16.     // Get a handle to the current printer
  17.     if not OpenPrinter(pchar(printer.Printers[NumPrinter]), HPrinter, nil) then
  18.     begin
  19.       ShowMessage('Error getting handle to current printer.' + #13 +
  20.         SysErrorMessage(GetLastError));
  21.       Exit;
  22.     end;
  23.     // Get size of printer info structure
  24.     Winspool.GetPrinter(HPrinter, 2, PrinterInfo2, Size, @Size);
  25.     // Allocate memory for printer info structure
  26.     ReAllocMem(PrinterInfo2, Size);
  27.     // Get printer info for current printer
  28.     if not Winspool.GetPrinter(HPrinter, 2, PrinterInfo2, Size, @Size) then
  29.     begin
  30.       ShowMessage('Error getting current printer info.' + #13 +
  31.         SysErrorMessage(GetLastError));
  32.       Exit;
  33.     end;
  34.     with PrinterInfo2^ do
  35.     begin
  36.         if param='ORIENTATION'  then
  37.                 if printer.Orientation=poPortrait then         // Portrait=0 et Paysage=1
  38.                         result:='0'
  39.                 else
  40.                         result:='1';
  41.         if param='COPIES'       then result:=IntToStr(Printer.Copies);
  42.         if param='PRINTERNAME'  then result:=pPrinterName;
  43.         if param='DRIVERNAME'   then result:=pDriverName;
  44.         if param='PORTNAME'     then result:=pPortName;                             // Ex: LPT1
  45.         if param='NBJOB'        then result:=IntToStr(cJobs);                // Nombre de Job en cours
  46.         if param='STATUS'       then result:=IntToStr(Status);               // Entier dont la valeur est décrite dans winSpool.pas
  47.         if param='PAPERSIZE'    then result:=IntToStr(pDevMode.dmPaperSize); // Entier correspondant à un format identifié dans windows.pas
  48.     end;
  49.     finally
  50.           FreeMem(PrinterInfo2);
  51.           if HPrinter <> 0 then
  52.                 ClosePrinter(HPrinter);
  53.     end
  54.    end;


Si quelqu'un a des infos sur ca :p
Merci d'avance!


Message édité par wam le 20-01-2004 à 10:33:45
mood
Publicité
Posté le 20-01-2004 à 10:33:03  profilanswer
 

n°616526
wam
Posté le 20-01-2004 à 13:17:02  profilanswer
 

:cry:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi 6]Status imprimante via API windows...

 

Sujets relatifs
Arrêter/démarrer un service windows ?[DELPHI] TRanférer des données d'une BD à une autre !
[DELPHI]Rave et code barreGénérateur de code API windows
[html] comment afficher son status msn sur son site ?[Scripting Windows] Enregistrer une saisie clavier Sous W2K ??!!!
[windows 2000 server] gerer les DNS avec une appli ASPProbleme de Charset sous Windows et pas sous Unix
.net + Windows NT 
Plus de sujets relatifs à : [delphi 6]Status imprimante via API windows...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR