文档详情

使用C#更改打印机设置.doc

发布:2017-02-12约8.8万字共16页下载文档
文本预览下载声明
使用C#更改打印机设置 以下是全球范围内更改打印机设置的C#代码。 public class PrinterSettings { #region Private Variables private IntPtr hPrinter = new System.IntPtr() ; private PRINTER_DEFAULTS PrinterValues = new PRINTER_DEFAULTS(); private PRINTER_INFO_2 pinfo = new PRINTER_INFO_2(); private DEVMODE dm; private IntPtr ptrDM; private IntPtr ptrPrinterInfo; private int sizeOfDevMode = 0; private int lastError; private int nBytesNeeded; private long nRet; private int intError; private System.Int32 nJunk; private IntPtr yDevModeData; #endregion #region Win API Def [DllImport(kernel32.dll, EntryPoint=GetLastError, SetLastError=false, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern Int32 GetLastError(); [DllImport(winspool.Drv, EntryPoint=ClosePrinter, SetLastError=true, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern bool ClosePrinter(IntPtr hPrinter); [DllImport(winspool.Drv, EntryPoint=DocumentPropertiesA, SetLastError=true, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern int DocumentProperties (IntPtr hwnd, IntPtr hPrinter, [MarshalAs(UnmanagedType.LPStr)] string pDeviceNameg, IntPtr pDevModeOutput, ref IntPtr pDevModeInput, int fMode); [DllImport(winspool.Drv, EntryPoint=GetPrinterA, SetLastError=true, CharSet=CharSet.Ansi, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] private static extern bool GetPrinter(IntPtr hPrinter, Int32 dwLevel, IntPtr pPrinter, Int32 dwBuf, out Int32 dwNeeded); /*[DllImport(winspool.Drv, EntryPoint=OpenPrinterA, SetLastError=true, CharSet=CharSet.Ansi, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, ref PRINTER_DEFAULTS pd) [ DllImport( winspool.drv,CharSet=CharSet.Unicode,ExactSpelling=false, CallingConvention=CallingConvention.StdCall )] public static extern long OpenPrinter(string
显示全部
相似文档