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 GetDefaultPrinter (https://www.delphipraxis.net/361-getdefaultprinter.html)

Daniel 7. Jul 2002 10:00


GetDefaultPrinter
 
Hallo,

ich will unter Windows 2000 / XP den Standard-Drucker ermitteln. Der empfohlene Weg ist die API-Funktion "GetDefaultPrinter". Es will mir aber einfach nicht gelingen, die gültige Pascal-Notation hierfür zu finden.
Die Original-Deklaration laut MSDN:
Code:
BOOL GetDefaultPrinter(
  LPTSTR pszBuffer,  // printer name buffer
  LPDWORD pcchBuffer // size of name buffer
);
Dazu mein bescheidener Versuch:
Code:
function GetDefaultPrinterA(prnName : PAnsiChar; bufSize : DWORD ) : BOOL; stdcall; external 'winspool.drv' name 'GetDefaultPrinterA';
Und alles was ich bekomme, ist eine Schutzverletzung. :cry: Beim "Project JEDI" habe ich diese Funktion nicht finden können.

Grüße,
Daniel

sakura 7. Jul 2002 10:23

Folgender sollte es tun
Code:
function GetDefaultPrinterA(prnName : PAnsiChar; var bufSize : DWORD ) : BOOL; stdcall; external 'winspool.drv' name 'GetDefaultPrinterA';

Daniel 7. Jul 2002 10:28

Das 'var' ist bei mir irgendwo verloren gegangen. Aber nun geht es :-)

Grüße,
Daniel

GuenterS 17. Aug 2004 07:52

Re: GetDefaultPrinter
 
Hallo,

ich benötige für ein Programm den Defaultprinter um diesen in einer extrigen Combobox darzustellen.

Dazu wollte ich die in diesem Thread vorgestellte GetDefaultPrinterA Procedure verwenden, nur weiß ich nicht recht wie ich diese Anwenden soll.


Muss ich vor Aufruf, Speicher reservieren und wenn ja wieviel?

Im moment mach ich es so:

Delphi-Quellcode:
function getDefaultPrinterName:string;
var
  lprnName: PAnsiChar;
  lBufSize: DWord;
begin
  GetMem(lprnName, 1000);
  try
     GetDefaultPrinterA(lprnName, lBufSize);
     Result := lprnName;
  finally
     FreeMem(lprnName);
  end;
end;
Wobei die Procedure GetDefaultPrinterA so eingebunden wurde wie oben gezeigt.

Luciano 17. Aug 2004 08:06

Re: GetDefaultPrinter
 
Hi...

Ich hatte da mal so gelöst

Delphi-Quellcode:
// DefaultPrnt ist ein string.
DefaultPrnt := Printer.Printers[Printers.Printer.PrinterIndex]
Getestet unter W2k und XP

Greets

Luciano

GuenterS 17. Aug 2004 09:49

Re: GetDefaultPrinter
 
Damit wäre mein eigentliches Problem gelöst :-D

Danke Dir :)


Wenn trotzdem noch wer eine Antwort zur Verwendung der GetDefaultPrinterA Procedure hat, würde mich die auch interessieren.

GuenterS 17. Aug 2004 15:12

Re: GetDefaultPrinter
 
Die eigentliche Problemlösung habe ich im Delphi-Forum bekommen.

Für Interessierte: [df]http://www.delphi-forum.de/viewtopic.php?t=29233[/df]


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz