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

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

Программно обновить список принтеров


lightix ©   (2003-06-24 22:02:00) 

Подскажите как можно программно обновить для приложения список принтеров? Имеется ввиду не только список, но и все указатели на них, параметры и т.п. Одним словом то что происходит при запуске приложения (касательно принтера).


lightix   (2003-06-25 07:53:00) [1]

Народ! Ну что никто не знает??? ПОМОГИТЕ!!!!!!!!
Ситуация такая:
Пользователи локальной сети подключаются к серверу терминалов Win2k,на котором находится ПО, под одним именем пользователя. При подключении каждого пользователя автоматически подключается его локальный принтер и становится принтером по умолчанию. Получается такая ситуация:
подключается первый пользователь, его принтер добавляется к списку принтеров и становится по умолчанию. запускается программа на builder. при печати отчета на QuickReport (или вообще любой печати) - все ок.
подключается 2-й пользователь,его принтер добавляется к списку принтеров и становится по умолчанию и т.п. Печать у него тоже нормально работает.
Если 1-й пользователь все это время не выходил из программы и теперь нажмет печать - то либо вылетает ошибка "No default printer selected", либо программа "вроде как печатает", т.е. ошибок нет и визуально вроде бы печать ушла, но на принтер ничего не попадает. Если же выйти из программы и запустить заново - то все ок, но тогда такая проблема возникает у 2-го пользователя и т.п.
Каким образом можно обновить список принтеров в программе (причем не просто обновить, а сделать те операции которые происходят при запуске программы) и сделать текущим принтер который выбран по умолчанию, а еще лучше для каждого пользователя "его" принтер?
Сейчас у меня это написано примерно так (под рукой нет Buildera поэтому пишу по памяти):

QuickReport1->PrinterSettings->PrinterIndex=0;
QuickReport1->PrinterSetup();
if(QuickReport->Tag==0)
QuickReport1->Print();

PrinterIndex=0 устанавливает в списке принтер, но видно не производит обновление указателей на них?
Желательно чтобы эта "инициализация" принтеров производилась для всего приложения, чтобы корректно работала печать и из других компонент.

Заранее благодарен.


Наверх

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