![]() |
Druckereigenschaften ändern
Hallo,
ich möchte die eigenschaften eines Druckers ändern. Diese änderungen müssen für das ganze system gelten, nicht nur für einen eigenen Druckjob.
Delphi-Quellcode:
wenn ich diesen code so ausführe, dann bekomme ich bei SetPrinter immer den Windowsfehler 5 "Zugriff verweigert".
var
Data2:PPrinterInfo2; hPrint, hDeviceMode :THANDLE; needed:Cardinal; Device : array[0..255] of char; Driver : array[0..255] of char; Port : array[0..255] of char; i:Integer; size:cardinal; //DevMode: PDeviceMode; begin if( combobox1.Items[combobox1.ItemIndex] <> '' ) then begin Printer.PrinterIndex := Printer.Printers.IndexOf( combobox1.Items[combobox1.ItemIndex] ); Printer.GetPrinter(Device, Driver, Port, hDeviceMode); //DevMode := GlobalLock( hDeviceMode ); WinSpool.OpenPrinter(@Device, hPrint, nil); size := sizeof( Data2 ); if( not GetPrinter( hPrint, 2, nil, 0, @needed ) ) then begin //GetMem( Data2, needed ); Data2 := AllocMem( needed ); try if( GetPrinter( hPrint, 2, Data2, needed, @needed ) ) then begin //Data2.pPortName := PChar(Listbox1.Items[ ListBox1.ItemIndex ]); if( not Winspool.SetPrinter( hPrint, 2, Data2, 0 ) ) then begin MessageDlg( 'Error setting new Port. Error: ' + IntToStr(GetLastError), mtError,[mbok], 0 ); end; end; finally FreeMem( Data2 ); //GlobalFree( Data2 ); end; end; //GlobalUnlock( hDeviceMode ); WinSpool.ClosePrinter( hPrint ); end; end; Weis jemand warum ich hier immer diesen Fehler bekomme? Beispiele, die ich im Internet gefunden habe machen das auch nicht anders und es scheint zu funktionieren. danke sim |
Re: Druckereigenschaften ändern
|
Re: Druckereigenschaften ändern
danke habs dort gefunden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz