Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.03 c
4-1098254440
sergeii
2004-10-20 10:40
2004.12.05
Vozmozhno li naiti v ToolBar-e Knopki


1-1100942077
viksoft
2004-11-20 12:14
2004.12.05
Как работать с конверторами CNV


4-1098289369
Basket
2004-10-20 20:22
2004.12.05
скачать WMI SDK для XP


3-1099989334
Pavor
2004-11-09 11:35
2004.12.05
Самопроизвольная запись в таблицу DB???


1-1101094265
zzTop
2004-11-22 06:31
2004.12.05
Подключение баз KAV к воей программе




   Наверх