Changer l' imprimante par defaut de windows

Soyez le premier à donner votre avis sur cette source.

Vue 21 149 fois - Téléchargée 2 192 fois

Description

J' ai fait une fonction qui renvoit la liste des imprimantes.
Puis d' après cette liste, vous en avez une autre pour modifier l' imprimante par defaut en donnant en parametre le nom de la nouvelle imprimante par defaut.

Source / Exemple :


voir zip

Conclusion :


http://delphi-developer.planetaclix.pt
PS: un grand bonjour à Monsieur Farez du Lycée Gaston Berger de Lille

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
5
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
23 juillet 2010

g un ptit soucis
avec quickreport il ne garde pas les paramettres que j'ai modifier dans printersetup
il imprime toujours avec les paramettres par défaut
pourriez vous me renseigner comment qu'avec quickreport je peux imprimer avec les modifications dans configuration de l'imprimante
Messages postés
69
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2011

j'ai modifier le programme mnt il marche avec la Base de Registre

unit Unit1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

procedure Liste_Imprimante(Destino : TStrings);
procedure Selectionne_Imprimante(Imprimante : String);

implementation
uses Registry;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
//
end;

procedure Liste_Imprimante(Destino : TStrings);
var
RegCode : TRegistry;
Str : String;
vtCount, i : Integer;
begin
Destino.Clear;
RegCode := TRegistry.Create;
try
RegCode.RootKey := HKEY_CURRENT_USER;
if RegCode.OpenKey('Software\Microsoft\Windows NT\CurrentVersion\Devices',False)
then RegCode.GetValueNames(Destino);
finally
RegCode.CloseKey;
RegCode.Free;
end;
end;

procedure Selectionne_Imprimante(Imprimante : String);
var
RegCode : TRegistry;
Str, Str1 : String;
Arr_Tmp : Array[0..64] of Char;
vtCount, i : Integer;
begin
RegCode := TRegistry.Create;
try
RegCode.RootKey := HKEY_CURRENT_USER;
if RegCode.OpenKey('Software\Microsoft\Windows NT\CurrentVersion\Devices',False)
then begin
if RegCode.ValueExists(Imprimante)
then begin
Str1 := RegCode.ReadString(Imprimante);
Str := Imprimante + ',' + Str1;
RegCode.CloseKey;
RegCode.RootKey := HKEY_CURRENT_USER;
if RegCode.OpenKey('Software\Microsoft\Windows NT\CurrentVersion\Windows',False)
then begin
if RegCode.ValueExists('Device')
then RegCode.WriteString('Device',Str);
//Windows Refresh changes :
StrCopy(Arr_Tmp, 'windows');
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@Arr_Tmp));
end;
end;
end;
finally
RegCode.CloseKey;
RegCode.Free;
end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Liste_Imprimante(ListBox1.Items);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if (ListBox1.ItemIndex <> -1)
then Selectionne_Imprimante(ListBox1.Items[ListBox1.ItemIndex]);
end;

end.
Messages postés
32
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
26 septembre 2005

"-StrCat est moins rapide que de faire S := S1 + S2;"

Lol

A++
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Je ne connais pas d' API qui fasse ce travail ...

Désolé que ça ne marche pas sous Win2000.
Je confirme par contre que sous Win95/98/XP ça marche bien!!!

Aucune idée YvesSimon, cette option étant personnelle à chaque imprimante, je te conseille de voir s' il n' existe pas un fichier de config' de ton imprimante ou si les options sont gravées sous le Registry. Ainsi, tu pourras changer la valeur selon tes besoins.
A+
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

comment forcer l'option impression recto verso de l'imprimante windows

Merci
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.