CHANGER L' IMPRIMANTE PAR DEFAUT DE WINDOWS

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 - 4 févr. 2003 à 13:36
haceneking Messages postés 5 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 23 juillet 2010 - 24 août 2010 à 03:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12335-changer-l-imprimante-par-defaut-de-windows

haceneking Messages postés 5 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 23 juillet 2010
24 août 2010 à 03:44
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
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011
20 avril 2007 à 03:23
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.
hexanium Messages postés 32 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 26 septembre 2005
14 févr. 2006 à 10:17
"-StrCat est moins rapide que de faire S := S1 + S2;"

Lol

A++
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
28 oct. 2005 à 14:47
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+
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
28 oct. 2005 à 14:41
comment forcer l'option impression recto verso de l'imprimante windows

Merci
adjena Messages postés 41 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 4 juin 2007
24 août 2004 à 08:31
J'ai testé et çà ne marche pas ...
cs_touareg Messages postés 4 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 6 mai 2009
10 avril 2003 à 16:30
Oui une Api serait plus interessante du fait que ce programme ne marche pas avec Win 2000 (aucune imprimantes) !
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
4 févr. 2003 à 13:36
Dis... Ton site et les commentaires de ton sources sont en espagnol... T'as pas des versions françaises ?!!
Sinon, deux/trois remarques :
-Le code est intéressant... N'y a-t-il pas, par contre, une API windows qui permet de faire le travail ?
-StrCat est moins rapide que de faire S := S1 + S2;
-Dans ton ZIP, tu n'as besoin que de quelques fichiers :
-les *.pas et *.dfm
-le *.dpr
-le *.res
Tu peux mettre les autres fichiers créés par Delphi, mais ils ne servent pas vraiment, et seront pour la plupart regénérés à la compilation du projet...

Bonne continuation !
Bestiol.
Rejoignez-nous