Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с принтерами


PEKAHT ©   (2005-01-10 10:31:00) 

Подскажите пжлст, как узнать какие принтеры есть в системе...
ну всякую информацию про них, про настройки ихние
как это все хранить у себя


www.Vlad.uk   (2005-01-10 11:57:00) [1]

Пуск>принтеры и факсы


KSergey   (2005-01-10 11:14:00) [2]

Для начала можно посмотреть Printer.Printers


olookin   (2005-01-10 10:36:00) [3]

Вот эта функция позволяет мне получать список установленных в системе принтеров:

function GetPrinters: TStringList;
var i: integer;
   Reg: TRegistry;
   lst,lstA: TStringList;
   a,s: AnsiString;
   info: OSVERSIONINFO;
begin
 lst:=TStringList.Create; lstA:=TStringList.Create;
 info.dwOSVersionInfoSize:=SizeOf(OSVERSIONINFO); GetVersionEx(info);
 if info.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
 Reg:=TRegistry.Create;
 with Reg do begin RootKey:=HKEY_CURRENT_USER;
 s:='\Software\Microsoft\Windows NT\CurrentVersion\Devices';
 if OpenKeyReadOnly(s) then begin GetValueNames(lst);
 for i:=0 to lst.Count-1 do begin a:=ReadString(lst.Strings[i]);
 a:=StringReplace(a,'winspool,','',[rfReplaceAll]);
 lstA.Add(lst.Strings[i]+' ('+a+')'); end; end; Free; end; end;
 if info.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS then
 lstA.Assign(Printer.Printers); lst.Free; GetPrinters:=lstA;
end;

Полагаю, что если для NT-системы копать реестр дальше, то можно получить и все настройки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо