Cómo utilizar la API para llamar al cuadro de diálogo de configuración de la impresora que viene con el sistemaLlamar a la API para abrir el cuadro de diálogo de propiedades de la impresora Autor: vitoriatang Fuente: Internet.NET Framework encapsula muchos diálogos cuadros sobre impresión, como PrintDialog, PageSetupDialog, etc. Pero a veces todavía debemos preocuparnos por el cuadro de diálogo de propiedades de la impresora. En este momento, se puede llamar a la API para resolver este problema. Hay varias funciones API relacionadas PrinterPropertiesDocumentPropertiesOpenPrinterClosePrinterIntroduzca Printerproperties una por una. fin de la llamada. ¿Cuál es la diferencia entre las propiedades de la impresora y la configuración de la impresora? Para obtener más detalles, consulte el código de muestra de msdn: 1. Declare la función API [System.Runtime.InteropServices.DllImportAttribute("winspool.public static extern int PrinterProperties( IntPtr hwnd, // Identificador de ventana principal IntPtr hPrinter); // Identificador del objeto de impresora [System.Runtime.InteropServices.DllImportAttribute("winspool.drv")] public static extern int PrinterProperties( IntPtr hwnd, // Identificador de la ventana principal IntPtr hPrinter // Identificador del objeto de impresora DllImportAttribute("winspool.drv", SetLastError = true )]] public extern static int OpenPrinter( string pPrinterName, // nombre de la impresora ref IntPtr hPrinter, // identificador del objeto de impresora ref IntPtr pDefault // identificador del objeto de impresora predeterminado. [identificador del objeto de impresora predeterminado).
[System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError = true)] public static extern int ClosePrinter( IntPtr phPrinter); // identificador del objeto de impresora 2. Llame a DocumentPropertiesprivate void documentPropButton_Click(remitente del objeto, EventArgs e) { string Nombre de la impresora = _document.PrinterSettings.Nombre de la impresora if (Nombre de la impresora! = null &;amp;&;amp; Nombre de la impresora.Longitud > 0) { IntPtr pPrinter = IntPtr.Zero IntPtr pDevModeOutput = IntPtr.IntPtr pPrinter = IntPtr.Zero; = IntPtr.Zero; OpenPrinter(nombredeimpresora, ref pPrinter, ref nullPointer); , ref pDevModeOutput, ref pDevModeInput, DM_PROMPT); ClosePrinter(pPrinter); }}3. Llame a la propiedad de la impresora private void printPropButton_Click(remitente del objeto, EventArgs e) { string PrinterName = _ document.PrinterSettings.PrinterName if (printerName! = null; & ;amp;&;amp; nombreDeImpresora.Longitud > 0) { IntPtr pPrinter = IntPtr.Zero; IntPtr pDevModeOutput = IntPtr.IntPtr pPrinter = IntPtr.Zero; ) ; int iNeeded = PrinterProperties(this. Handle, pPrinter) ClosePrinter(pPrinter); }PrinterName.Length >.0;