Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Узнать версию драйвера принтера

Delphi , ОС и Железо , Принтеры и Печать

Узнать версию драйвера принтера

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch


 uses
   Printers, Winspool;


 procedure TForm1.FormCreate(Sender: TObject);
 begin
   ComboBox1.Items.Assign(Printer.Printers);
 end;


 procedure TForm1.ComboBox1Change(Sender: TObject);
 var
   hPrinter: THandle;
   PrtName: string;
   DriverInfo: PDriverInfo2;
   dwNeeded: DWORD;
 begin
   Memo1.Clear;
   PrtName := Combobox1.Text;
   OpenPrinter(PChar(PrtName), hPrinter, nil);
   GetPrinterDriver(hPrinter, nil, 2, DriverInfo, 0, dwNeeded);
   GetMem(DriverInfo, dwNeeded);
   if GetPrinterDriver(hPrinter, nil, 2, DriverInfo, dwNeeded, dwNeeded) then
   begin
     // Add infos to Memo1 
    Memo1.Lines.Add('Version: ' + IntToStr(DriverInfo.cVersion));
     Memo1.Lines.Add(StrPas(DriverInfo.pName));
     Memo1.Lines.Add(StrPas(DriverInfo.pEnvironment));
     Memo1.Lines.Add(StrPas(DriverInfo.pDriverPath));
     Memo1.Lines.Add(StrPas(DriverInfo.pDataFile));
     Memo1.Lines.Add(StrPas(DriverInfo.pConfigFile));
   end
   else
     Memo1.Lines.Add('No Info needed = ' + IntToStr(dwNeeded));

   ClosePrinter(hPrinter);
   FreeMem(DriverInfo);
 end;

Программа на Delphi, которая извлекает версию драйвера принтера и отображает ее в контроле Memo. Вот шаг за шагом, как она работает:

Процедура FormCreate Когда форма создается, процедура FormCreate пополняет список элементов комбо-бокса (ComboBox1) списком доступных принтеров с помощью свойства Printers из единицы Printers.

Процедура ComboBox1Change Когда пользователь выбирает принтер в комбо-боксе, процедура ComboBox1Change запускается. Она:

  1. Очищает любое существующее текст в контроле Memo (Memo1).
  2. Извлекает имя выбранного принтера из комбо-бокса.
  3. Открывает указанный принтер с помощью функции OpenPrinter.
  4. Вызывает функцию GetPrinterDriver, чтобы извлечь информацию о драйвере для выбранного принтера. Параметр dwNeeded используется для определения, сколько памяти требуется для информации о драйвере, а указатель PDriverInfo2 выделяется соответствующим образом.
  5. Если функция GetPrinterDriver возвращает успешно, она извлекает номер версии драйвера принтера из поля cVersion структуры DriverInfo и добавляет его к контролу Memo вместе с другими информациями о драйвере (имя, окружение, путь, файл данных и файл конфигурации).
  6. Если функция GetPrinterDriver не возвращает информацию или ее нет, она отображает сообщение об ошибке.
  7. Закрывает принтер с помощью функции ClosePrinter.
  8. Освобождает выделившуюся память для информации о драйвере с помощью процедуры FreeMem.

Версия драйвера принтера может быть извлечена из поля cVersion структуры DriverInfo, которая является членом типа PDriverInfo2. Это поле представляет собой номер версии драйвера как целое число.

В целом, эта программа предоставляет простой способ извлечь и отобразить информацию о выбранном драйвере принтера, включая его номер версии.

В статье описывается код на Delphi, который позволяет узнать версию драйвера принтера, выбранного в списке комбобокса.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Принтеры и Печать ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 14:17:29/0.0031139850616455/0