MSDN, AddPrinterDriver, помагайте! :)

10 отговора 0 прегледа
#1

MSDN, AddPrinterDriver, помагайте! :)

MSDN AddPrinterDriver

Искам да добавя Generic Text Driver.
Правя си една структура pDriverInfo и я попълвам:
cVersion := 2;
pName := PChar( 'Generic');
pEnvironment := PChar( 'Windows NT x86');
pDriverPath := PChar( 'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIDRV.DLL');
pDataFile := PChar( 'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTY.GPD');
pConfigFile := PChar( 'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIDRVUI.DLL');

и изпълнявам AddPrinterDriver( '', 2, pDriverInfo), обаче се получава грешка, а GetLastError връща 2 (липсва файл).
Изброените в структурата файлове са налични в съответната папка.

Отговор
в отговор на NikB #2

Re: MSDN, AddPrinterDriver, помагайте! :)

що не пробваш да я разпечатиш тая структура, да видиш кво точно си попълнил

Отговор
в отговор на Oliveta #3

Ей го на - картинка на Паскал

Ей го на - картинка на Паскал.
Структурата е долу, в "Watch List" полето.
(В зависимост от браузъра, с десния бутон Show Picture, вероятно се вижда по-добре :)

и още

Редактирано от NikB на

Отговор
в отговор на NikB #4

Re: Ей го на - картинка на Паскал

За помощ 30$/час.

Отговор
в отговор на NikB #5

Re: Ей го на - картинка на Паскал

що не логнеш един тикет на ХП
все пак с техния драйвер се мъчиш

и между другото аз го имам инсталнат тоя драйвер и работи, но нямам файл:
'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTY.GPD'

Редактирано от Oliveta на

Отговор
в отговор на Joro_M #6

Сметката е точна :)

Сметката е точна :).
Ако беше разбирач :), тая помощ щеше да ти отнеме 1 минута, т.е. 0.5$, нека ги закръглим на една бира - това е нормалната цена за отговор по форумите.

Отговор
в отговор на NikB #7

Re: MSDN, AddPrinterDriver, помагайте! :)

ама кажи ако си го подкарал, да има полза и за четящите тук

Отговор
в отговор на Oliveta #8

Още ме тормози

Още ме тормози - не си намирало файла !
(Като го инстална бабешката, тук долу си пише:
Driver name: UNIDRV.DLL
Data file: TTY.GPD
Config file: UNIDRVUI.DLL

Ей, на:

Windows XP
Printer Test Page
Congratulations!
If you can read this information, you have correctly installed your
Generic / Text Only on DEV-Q45.
The information below describes your printer driver and port
settings.
Submitted Time: 21:09:44 2009-08-18
Computer name: DEV-Q45
Printer name: Generic / Text Only
Printer model: Generic / Text Only
Color support: No
Port name(s): FILE:
Data format: RAW
Share name:
Location:
Comment:
Driver name: UNIDRV.DLL
Data file: TTY.GPD
Config file: UNIDRVUI.DLL
Help file: UNIDRV.HLP
Driver version: 6.00
Environment: Windows NT x86
Additional files used by this driver:
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTYRES.DLL (5.2.3790.120 (srv03_qfe.031205-1652))
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTY.INI
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTY.DLL (5.2.3790.120 (srv03_qfe.031205-1652))
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTYUI.DLL (5.2.3790.120 (srv03_qfe.031205-1652))
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIRES.DLL (6.0.6001.22116 (vistasp1_ldr.080215-1730))
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\STDNAMES.GPD
C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTYUI.HLP
This is the end of the printer test page.

Отговор
в отговор на NikB #9

Re: Още ме тормози

Това API
1/ е предимно за производители на драйвери (и принтери) - като HP, Canon и т.н
2/ точно 2-рия ред от МСДН линка казва, че е по-добре да се ползва друго вместо него.

Можеш ли споделиш сценария който имаш, че ти се налага да инсталираш драйвер? (Питам, защото мисля че се бъркаш че искаш да инсталираш принтерски драйвер)

Най-добре ползвай това:
rundll32 printui.dll,PrintUIEntry /ia /m "Generic / Text Only"
(или LoadLibrary и т.н ако не искаш нов процес)

Това което имаш дори да проработи, не е ясно:
1/ как файловете попадат във W32X86\3? В резултат на това АПИ Spooler-а ще ги копира там (след като направи 100 други работи) , но от теб се очаква да дадеш път към тях на друго място, където те вече съществуват.
2/ драйверите имат и denendent файлове. Може да се окаже, че файловете са различни във различните версии на Windows. Т.е. дори да успееш на Server 2003, може и да не работи на Vista.
3/ а x64?

Отговор
в отговор на B_M_N #10

Re: Още ме тормози

Сценарият е предложен от колега, който иска да пренасочи някакъв софтуер към шернат принтер закачен на com порт (ако драйвера го имам - добавям принтери без проблеми. мога и да изтрия драйвера, също без проблем :) - знаеш ли вица за физиците-теоретици: много бързо смятат устойчивостта на маса с един и на маса с безкраен брой карака, но устойчивостта на маса с 4 крака - това е непосилна задача :)).

Относно попадането на файловете в "W32X86\3" - логически си много точен :), файловете, които са цитирани съм ги слагал и в други папки и съм указвал съответните пътища - няма разлика.
Ще пробвам предложенията ти при първа възможмност и ще допълня поста.

За сега темата е актуална за няколко машини с XP. Проблемът е AddPrinterDriver (или AddPrinterDriverEx) - мисля, че, ако успея да го пусна, адаптирането към разни ОС ще е по-леко.
(въпреки, че далеч не е спешна, много ме дразни, че не се справям.)

Благодаря ти за подробния отговор.

Отговор
в отговор на B_M_N #11

БЛАГОДАРЯ МНОГО!

БЛАГОДАРЯ МНОГО!
rundll32 printui.dll,PrintUIEntry /ia /m "Generic / Text Only"
решава проблема.

ПП
По темата, за форума: Тука има подробности
Command Line Printer Control in Windows 2000 / XP

Отговор