Вниз
Скачать: CL | DM;

Параметры печати, установки принтера, свойства документа?   Найти похожие ветки 

 
DAT   (2003-07-22 16:11) [0]

Приветствую мастеров.
Пишу прогу, следящую за печатью(прога висит в памяти и отлавливает нотификации принтера). Столкнулся с проблемой чтения текущих установок принтера. При попытке считать текущие установки получаю установки по умолчанию, но никак не текущие :(( Помогите разобраться.
Код:
...
hDeviceMode:=GlobalAlloc( GHND , DocumentProperties(0, hPrinter, PChar(PrinterName), CurrDevMode^, CurrDevMode^, 0));
CurrDevMode:= GlobalLock(hDeviceMode);
if DocumentProperties( 0, hPrinter, PChar(PrinterName), CurrDevMode^, StubDevMode, DM_UPDATE or DM_OUT_BUFFER)>0 then
begin
//здесь манипуляции с установками (только чтение!)
//CurrDevMode^.dmPaperSize
//CurrDevMode^.dmCopies
//CurrDevMode^.dmColor
//и т.д
end;


 
DAT   (2003-07-22 16:15) [1]

код на самом деле :))

hDeviceMode:=GlobalAlloc( GHND , DocumentProperties(0, hPrinter, PChar(PrinterName), CurrDevMode^, CurrDevMode^, 0));
CurrDevMode:= GlobalLock(hDeviceMode);
if DocumentProperties( 0, hPrinter, PChar(PrinterName), CurrDevMode^, CurrDevMode^, DM_OUT_BUFFER)>0 then
begin
//здесь манипуляции с установками (только чтение!)
//CurrDevMode^.dmPaperSize
//CurrDevMode^.dmCopies
//CurrDevMode^.dmColor
//и т.д
end;
GlobalUnlock(hDeviceMode);


 
N169   (2003-07-22 17:27) [2]

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


 
DAT   (2003-07-22 18:37) [3]

2 N169
Видимо о чем-то таком я и догадывался :)))
Есть ли способ получить установки, модифицированные в контексте произвольного процесса? Иными словами получить параметры печати, но не работы как таковой, а именно установки принтера для произвольной работы (ориентация страницы, формат, кол-во копий и т.п.)?

Спасибо


 
DAT   (2003-07-22 19:03) [4]

Проблема была успешно разрешена. Ключевым моментом как раз и были параметры работы, извлекаемые в момент нотификации. Если кому интересно, могу выложить код :))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-18372
Delphin
2003-09-22 22:18
2003.10.06
Удаление ключа из реестра


1-18337
Slym
2003-09-22 14:00
2003.10.06
Как передать параметры в MS Script Control?


6-18503
MDFE
2003-08-09 15:18
2003.10.06
Пытаюсь сделать счетчик CGI на Делфи


3-18219
ЭД
2003-09-17 12:06
2003.10.06
ClientDataSet.RefreshRecord не работает


1-18355
xx
2003-09-25 17:39
2003.10.06
Обработка String a




   Наверх