2017-12-20 2 views
0

Ich rufe Native Methoden für den Rohdruck.Rohdruck - StartDocPrinterW

if (NativeMethods.OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero)) 
{ 
    if (NativeMethods.StartDocPrinter(hPrinter, 1, ref di)) //My problem is here 
    { 
     if (NativeMethods.StartPagePrinter(hPrinter)) 
     { 
      bSuccess = NativeMethods.WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); 
      NativeMethods.EndPagePrinter(hPrinter); 
     } 
     NativeMethods.EndDocPrinter(hPrinter); 
    } 
    NativeMethods.ClosePrinter(hPrinter); 
} 

Alles funktioniert. Aber wenn ich die Zeile mit "// Mein Problem ist hier" anruft, wird mein Standarddrucker auf diesen Drucker umgestellt?

Wie behalte ich den aktuellen Standarddrucker?

Antwort

0

Wenn Sie einen Nullzeiger für den Druckernamen angeben, wird der Standarddrucker verwendet.

+0

Sorry, aber das ist nicht das, was ich gefragt habe. Das Problem ist, ich möchte auf den angegebenen Drucker (mehrere Warteschlangen) drucken. Aber wenn ich die Funktion anrufe, um dort zu drucken, bekommt der Drucker, den ich angegeben habe, den Standarddrucker. Ich möchte den Standarddrucker nicht verwenden. –