WinXP, D7, AddPrinterDriver - как се ползва?
Искам да добавя драйвер: "Generic / Text Only"
(Ако в Win поне веднъж е инсталиран тоя драйвер - няма проблем.)
Ако драйверът поне веднъж е инсталиран, енумераторът на драйверите връща нещо такова (и няма проблем):
cVersion: 3
pName: Generic / Text Only
pEnvironment: Windows NT x86
pDriverPath: C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIDRV.DLL
pDataFile: C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTY.GPD
pConfigFile: C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIDRVUI.DLL
Интересува ме някой пример за AddPrinterDriver:
AddPrinterDriver(pName: PChar; Level: DWORD; pDriverInfo: Pointer): BOOL; stdcall;
Как да определя кое е оптималния Level, как да запълня pDriverInfo?
Пробата ми дава грешка 1801: "[color="#8B0000"]The printer name is invalid[/color]" - кофти работа!
Ето я пробата (Гледайки примера на и резултатите от ръчно инсталиран "Generic / Text Only" драйвер):
Това кодче
{}procedure TfrmMain.Button1Click(Sender: TObject);
var
xDriverInfo: pDriverInfo2;
begin
New( xDriverInfo);
xDriverInfo.cVersion := 3;
xDriverInfo.pName := PChar( 'Generic / Text Only');
xDriverInfo.pEnvironment := PChar( 'Windows NT x86');
xDriverInfo.pDriverPath := PChar( 'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIDRV.DLL');
xDriverInfo.pDataFile := PChar( 'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\TTY.GPD');
xDriverInfo.pConfigFile := PChar( 'C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\UNIDRVUI.DLL');
if AddPrinterDriver( 'Generic / Text Only', 2, xDriverInfo) then begin
StatusBar1.SimpleText := 'OK';
end else begin
StatusBar1.SimpleText := IntToStr( GetLastError)+': '+SysErrorMessage( GetLastError);
end;
end;
Редактирано от NikB на 08.08.09 19:34.