Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

DocumentProperties и W inXP/ Win9x   Найти похожие ветки 

 
spleen   (2003-01-04 10:49) [0]

доброе время суток Мастера.....
возникла трабла..писался код по настройке принтера на Delphi 5 под WinXP (привожу ниже)
_____________
VAR
h_dc,h_dc_mem:variant;
id_mode, d_mode: DEVMODE;
hPrinter, dc_bitmap : Thandle;
pnt : ^DEVMODE;
p:Thandle;
di:DOCINFO;
printerindex:integer;
var1,var2:pchar;
num_bytes:integer;
h_dc_result:variant;
____________
var2 :=pchar(Printer.Printers.Strings[printerindex]);
OpenPrinter(var2, hPrinter, nil);
///do not work
num_bytes := DocumentProperties(0, HPrinter, var2, id_mode, id_mode, 0);
p:=GlobalAlloc(GMEM_FIXED,num_bytes);
pnt:=GlobalLock(p);
DocumentProperties(0, hPrinter, var2, pnt^, id_mode, DM_OUT_BUFFER);
d_mode:=pnt^;
var1 :=pchar("winspool");
d_mode.dmDuplex:=dmdup_vertical;
d_mode.dmPrintQuality:=dmres_draft;
d_mode.dmYResolution:=-1;
d_mode.dmColor:=dmcolor_monochrome;
d_mode.dmDisplayFlags:=dm_grayscale;//!
d_mode.dmBitsPerPel:=8;
d_mode.dmFields:=d_mode.dmFields or DM_Duplex or dm_printquality or dm_yresolution or dm_color or dm_displayflags or dm_bitsperpel;
h_dc_result:=createDC(var1,var2,nil,@d_mode);
_____________
под winXP все бегает и пляшет...а вот под Win9x с места ///do not work тишина...возвращает -1 и все..и соответственно ничего дальше не работает
помогите плиз разобраться...может с параметрами чаго не того..но почему под WinXP все работает....-(
жду дельных советов


 
Alex Konshin   (2003-01-04 11:10) [1]

А hPrinter нормальный возвращает?


 
spleen   (2003-01-04 13:09) [2]

там код я исправила, уже все берет и handle и ссылки остальные все нормально, hPrinter тоже нормальный,...но..я щас начну громко смеятся...опять же под 98 настройки хавает даже отправляет на печать, в списке принтера задание появляется, вот тока размером вместо 600-800 по 200Кб-((...так вот, а на печать ничего не уходит..даже листик с киким-нибудь error не вылазит-((
и опять же под WinXP все чудненько пляшет и бегает......
если разбираешься в этом,я выложу новый исходник?!...


 
Alex Konshin   (2003-01-04 20:58) [3]

А сначала можно спросить, почему так сложно?
Почему не используешь модуль Printers?
Я понимаю, что они там несколько переусердствовали в сокрытии всего, чего скрывать не следовало бы, но теоретически даже без хакерства можно по-честному вытащить handle для DeviceMode, по нему получить сам devmode, ну и менять там то, что надо.
Если же немного не по-честному, то совсем просто - это все уже есть в объекте TPrinter, нужно только вытащить.
Смотри, например, как устанавливается форма для принтера:
http://home.earthlink.net/~akonshin/files/PrintLib.pas

Кстати, я тут кому-то совсем недавно кидал уже этот файлик. Я сейчас в него заглянул и заметил, что там ошибки не отлавливаются. Так я поправил его чуть-чуть.


 
spleen   (2003-01-08 11:49) [4]

дык использова-ЛА .. но там нет возможности настраивать размеры бумаги и самое главное отключать дуплекс в принтере! а вот апишные функции дают такую возможность!...а вообще-то и не сложно...а в чем трабла я нашла, если интересно могу написать...ошибка пустяковая и не связана с апишными функциями-))


 
Alex Konshin   (2003-01-08 18:57) [5]

Ну так в моем примере показано как менять формы, а изменить размер бумаги и т.п. аналогично. Там же показано, как devmode достать, а с ним ты работать умеешь. Я не настаиваю - это твое дело, но в моем случае будут нормально работать остальные функции из Printers, а в твоем, боюсь, их использовать просто нельзя.

А в чем ошибка-то? Небось в том, что ты неверно DocumentProperties вызывала? Просто в приведенном коде этого вызова вообще нет.



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

Форум: "WinAPI";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-53245
JibSkeart
2003-01-31 15:08
2003.02.17
Какой прожыточный минимум в Москве и можно там найти


9-52703
VitGun
2002-09-13 18:58
2003.02.17
Сохранение изо.карты.


1-53019
smok_er
2003-02-10 18:58
2003.02.17
ListView and inplace editors


1-52929
Pipelly
2003-02-07 20:10
2003.02.17
Отсчет времени


14-53278
Шишкин Илья
2003-02-02 11:55
2003.02.17
Задал вопрос, а ответить никто не может





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский