PrintyCS – CODE : Modifier l’imprimante par défaut

NOTE : Cet article est uniquement destiné aux programmeurs Delphi …eursurs

On trouve sur le net des hackers une quantité de lignes de codes pour modifier l’imprimante par défaut utilisée par un programme DELPHI

Il y a des codes sérieux, ce sont en général des codes courts, qui tiennent sur une seule fonction de quelques lignes, et à côté des délires absolus écrits par des illuminés, sur des pages et des pages, dont le seul but ne semble être que celui d’embrouiller de client, juste pour lui montrer combien ils sont des intelligences supérieures et surtout comme ils sont indispensables…

J’ai retenu 2 codes robustes qui font le job en un minimum de lignes :

Celui de cJcSoft.NET :

  • Qui modifie l’imprimante par défaut au panneau de Windows
procedure SetDefaultPrinter(NewDefPrinter: string);
 { http://delphi.cjcsoft.net/viewthread.php?tid=49559 }
 var
  ResStr: array [0 .. 255] of Char;
 begin
  StrPCopy(ResStr, NewDefPrinter);
  WriteProfileString('windows', 'device', ResStr);
  StrCopy(ResStr, 'windows');
  SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@ResStr));
 end;
  • Il est parfait car il tient sur 4 lignes,
  • Mais il a l’inconvénient d’obliger à redémarrer le programme pour que ses modifications prennent effet.

Celui  de BlueGYN.COM ***{:-

  • Qui a l’avantage de modifier immédiatement l’imprimante active du programme, et l’immense avantage de tenir sur une seule ligne
 procedure PRINT_SetDefaultPrinter(PrinterName: string);
 { BlueGYN 2017 }
 begin
  Printer.SetPrinter(PChar(PrinterName), 'WINSPOOL', '', 0);
 end;

J’ai cherché et testé tous les codes possibles glanés sur internet, pour finir par appuyer sur la touche F1 de DELPHI qui ouvre simplement la propriété SetPrinter de l’Objet PRINTER qui gère la collection d’imprimantes système

Pour changer d’imprimante :

  • Dans mon cas pour passer de l’imprimante Papier à PDF
  • Je déclare l’objet PRINTER
uses Printer;
  • Je liste les imprimantes système dans une ListBox:
ListBox_PRINTERS.items := Printer.printers;
  • Je pointe l’imprimante active
ListBox_PRINTERS.ItemIndex := Printer.PrinterIndex;
  • Je choisis une autre imprimante dans ma ListBox
    • Et je clique pour l’activer
Print_SetDefaultPrinter( ListBox_PRINTERS.items[ListBox_PRINTERS.ItemIndex] );
  • La modification est instantanée !

NE PAS OUBLIER DE RESTAURER L’IMPRIMANTE ORIGINALE A LA FIN DE LA MANIP !

Mise en pratique :

Voir programme PrintyCS


Un bonnet d’âne à tous ces prétendus programmeurs du net qui ne sont en fait que des faiseurs de crottes de bique , payés au kilomètre …

 

 

 

 

 

 

 

 

Tous les articles pour 'PrintyCS'

MEDYCS : PrintyCS

PrintyCS est un gestionnaire d’impression de consultation pour MedyCS, tendant à remplacer en le simplifiant le gestionnaire d’impression dossier du programme médical,

2 comments

MEDYCS : PrintyCS – A quoi sert la licence ?

La version pro permet une mise en page avancée du texte (Titre, Sous Titre, Stabylo, Expression régulières)

0 commentaire

PrintyCS – CODE : Envoyer un texte par EMAIL en une seule ligne de code

Le deal c’est d’envoyer un texte complet par e mail sans installer aucun truc imbitable.

0 commentaire

PrintyCS : Redirection de l’impression

Printycs peut rediriger le contenu du document dans 5 directions

0 commentaire

PrintyCS – CODE : Modifier l’imprimante par défaut

Un bonnet d’âne à tous ces prétendus programmeurs du net qui ne sont en fait que des faiseurs de crottes de bique , payés au kilomètre …

0 commentaire

PrintyCS : Ligne de commande MédyCS

PrintyCS nu se contente d’imprimer le contenu du presse papier avec une entête vide,
Il est cependant possible, et fortement recommandé d’y placer les données du patient en le liant avec médycs,

1 commentaire

Laisser un commentaire