Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Druckereigenschaften ändern (https://www.delphipraxis.net/48647-druckereigenschaften-aendern.html)

HERMES 28. Jun 2005 14:45


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:
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;
wenn ich diesen code so ausführe, dann bekomme ich bei SetPrinter immer den Windowsfehler 5 "Zugriff verweigert".

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

toms 29. Jun 2005 03:19

Re: Druckereigenschaften ändern
 
Hallo,

Schon mal in denGoogle Groups geschaut?

HERMES 29. Jun 2005 13:38

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