Как узнать, какие принтеры установлены в системе
Поместите на форму кнопку (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;
|
|