Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

AddPrinterDriver   Найти похожие ветки 

 
Lingo   (2004-10-21 14:19) [0]

Всем привет уже второй день парюсь с этой функцией
Народ может кто знает что конкретно делает AddPrinterDriver и почему при ее выполнении возникает ошибка 5 (нет доступа) причем через свойства принтеров Windows я могу менять им драйвера, имена и т.д. (т.е. работаю под правами администратора)
Из MSDN я понял что эта функция добавляет в систему новый драйвер принтера но почему тогда она выполняется только когда значение pName есть имя уже установленного принтера иначе GetlastError = 1801(Имя принтера заданно неверно)


var
       pName: string;
       pDriver: driver_INFO_2;
       pDriver2: ^driver_INFO_2;
begin
       pName:="HP LaserJet 4000";
       pdriver.cVersion:=3;
       pdriver.pName:="HP LaserJet 4000 PS";
       pdriver.pEnvironment:="Windows XP";
       pdriver.pDriverPath:="c:\driver\pscript.dll";
       pdriver.pDataFile:="c:\driver\HP4000_7.PPD";
       pdriver.pConfigFile:="c:\driver\Pscrp.dll";
       if addPrinterDriver(pName,2,pDriver2)=false
          then
          showmessage("Error # "+inttostr(GetlastError));
end;


 
GobliNGuT ©   (2004-10-21 15:55) [1]

Ты хочешь установить локальный принтер? тогда смотри сюда

var
      pDriver: driver_INFO_2;
      pDriver2: ^driver_INFO_2;
begin
      pdriver.cVersion:=3;
      pdriver.pName:="HP LaserJet 4000 PS";
      pdriver.pEnvironment:="Windows XP";
      pdriver.pDriverPath:="c:\driver\pscript.dll";
      pdriver.pDataFile:="c:\driver\HP4000_7.PPD";
      pdriver.pConfigFile:="c:\driver\Pscrp.dll";
      pDriver2:=^pDriver;
      if addPrinterDriver(NULL,2,pDriver2)=false
         then
         showmessage("Error # "+inttostr(GetlastError));
end;

комент:

The AddPrinterDriver function installs a local or remote printer driver and links the configuration, data, and driver files.

BOOL AddPrinterDriver(

   LPTSTR pName, // pointer to server name
   DWORD Level, // printer info. structure level
   LPBYTE pDriverInfo  // pointer to printer info. structure
  );


Parameters

pName

Pointer to a null-terminated string that specifies the name of the server on which the driver should be installed.
If pName is NULL, the driver will be installed locally.

pDriverInfo

Pointer to either a DRIVER_INFO_2 structure or a DRIVER_INFO_3 structure. If Level is 2, this parameter receives a DRIVER_INFO_2 structure. If Level is 3, this parameter receives a DRIVER_INFO_3 structure.


Да и маленькая рекомендация:
когда работаешь с указателями не называй статические переменные с маленькой бувы p. Намного удобнее искать у себя глюки если статика у тебя называется Name а указатель на нее называется pName (pointer to Name)


 
Lingo   (2004-10-22 07:42) [2]

И так тоже не хочет работать не воспринимает строку
Dpriver2:=^pDriver;
Выдает ошибку:
Incopatible types: "Char" and "Pointer"


 
Lingo   (2004-10-22 08:35) [3]

Извеняюсь
pDriver2:=^pDriver;
Да конечно так


 
Lingo   (2004-10-22 08:35) [4]

Incopatible types: "Char" and "Pointer"


 
Маг Похмеляйнен   (2004-10-22 10:27) [5]

А через rundll32 пробовали?
rundll32 printui.dll,PrintUIEntry <параметры>


 
Lingo   (2004-10-22 13:14) [6]


> rundll32 printui.dll,PrintUIEntry <параметры>

Да все заработало жаль конечно что так и не разобрался с addPrinterDriver ну да ладно времени уже нету.
Спасибо друзья.
http://maxz.ru/index.asp?CodeRazdel=25



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

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
1-1100579553
ККВ
2004-11-16 07:32
2004.12.05
Количество фом проекта


8-1094258677
-Guest-
2004-09-04 04:44
2004.12.05
Как конвертировать BMP/JPG to TGA???


3-1099832621
DeepProg
2004-11-07 16:03
2004.12.05
Отобразить Memo поле в DBGrid - вариация на тему


9-1091703136
pavel_pavel
2004-08-05 14:52
2004.12.05
TBitmap побыстрее


4-1098287307
korfu
2004-10-20 19:48
2004.12.05
передача строки в ActiveX-приложение