Главная страница
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-1101114370
highlander
2004-11-22 12:06
2004.12.05
Шифрование и дешифрование текста


1-1100684087
Woolen
2004-11-17 12:34
2004.12.05
Работа TPrintDialog вызывает непонятную ошибку


4-1098450973
Lin7
2004-10-22 17:16
2004.12.05
Как узнать размер иконки на рабочем столе?


3-1099560939
Kat
2004-11-04 12:35
2004.12.05
Если затем открыть запрос надо ли делать IBQuery.SQL.Clear ?


1-1100703753
Yanis
2004-11-17 18:02
2004.12.05
Переносы