Как узнать, какие принтеры установлены
в системе.
Компилятор: Delphi
Способ 1 - через реестр:
Поместите на форму кнопку (Button1) и ListBox (ListBox1). В
uses добавьте registry unit. Следующий код поместите в
событие кнопки OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var
m: TRegistry;
i: integer;
l: TstringList;
s: string;
begin
m := TRegistry.Create; l := TStringList.Create;
s := '\System\CurrentControlSet\Control\Print\Printers';
m.RootKey := HKEY_LOCAL_MACHINE;
m.OpenKey(s,false);
m.GetKeyNames(l); //
получаем список принтеров
m.CloseKey;
ListBox1.Items.Clear;
for i := 0 to l.Count - 1 do begin
m.OpenKey(s + '\' + l[i], false);
// Здесь, ради теста,
можно сделать проверку на наличие нужного имени
драйвера
// if m.ReadString('Printer Driver') = 'my
printer driver' then ..
// добавляем имя
принтера в список
ListBox1.Items.Add(m.ReadString('Name'));
m.CloseKey;
end;
m.Free;
l.Free;
end;
Способ 2 - через объект printer:
// uses printers
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
ListBox1.Items.Clear;
for i := 0 to Printer.Printers.Count-1 do
ListBox1.items.Add(Printer.Printers.Strings[i]);
end;
|