|
Вопрос # 6/ вопрос решён / |
|
Уважаемые эксперты! Подскажите, пожалуйста, как узнать, установлен ли в системе хотя бы один принтер? Заранее благодарю за ответ.
 |
Вопрос задал: Sunshine (статус: Посетитель)
Вопрос отправлен: 11 мая 2006, 15:39
Состояние вопроса: решён, ответов: 3.
|
Ответ #1. Отвечает эксперт: bruder
Есть много способов. Вот один из них - с помощью реестра. Кинь на форму кнопку и memo. В событие кнопки OnClick пиши код приложенный к ответу.
Приложение: Переключить в обычный режим- procedure TForm1.Button1Click(Sender: TObject);
- var
- m: TRegistry;
- i: integer;
- l: TstringList;
- s: string;
- begin
- m := TRegistry.Create; l := TStringList.Create;
- s := 'SystemCurrentControlSetControlPrintPrinters';
- m.RootKey := HKEY_LOCAL_MACHINE;
- m.OpenKey(s, false);
-
- m.CloseKey;
- Memo1.Lines.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 ..
-
- Memo1.Lines.Add(m.ReadString('Name'));
- m.CloseKey;
- end;
- m.Free;
- l.Free;
- end;
 |
Ответ отправил: bruder (статус: 4-ый класс)
Время отправки: 11 мая 2006, 17:49
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: DNK
Самое простое что приходит в голову подключить к проекту модуль Printers. После этого программе станет доступно свойство Printer.Printers:TStrings - список установленных в системе принтеров.
 |
Ответ отправил: DNK (статус: Студент)
Время отправки: 13 мая 2006, 00:56
Оценка за ответ: 5
Комментарий к оценке: Коротко и удобно!
|
Ответ #3. Отвечает эксперт: West
Мне известно два способа, один из них осветил bruder, второй:
Приложение: Переключить в обычный режим- // 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;
 |
Ответ отправил: West (статус: 1-ый класс)
Время отправки: 14 мая 2006, 00:03
Оценка за ответ: 3
Комментарий к оценке: Во-первых, вы повторили ответ Ершова Дениса; во-вторых, перебор значений Printers делать не нужно - это ведь уже TStrings.
|
Мини-форум вопроса
Всего сообщений: 0.
31 января 2011, 19:56: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|