Esempio n. 1
0
        private static bool ChangePrinter(string printerName, PRINTER_CONTROL state)
        {
            IntPtr hPrinter;
            int    iRes;

            PRINTER_DEFAULTS printerDefaults = new PRINTER_DEFAULTS();

            printerDefaults.pDatatype     = null;
            printerDefaults.pDevMode      = null;
            printerDefaults.DesiredAccess = PRINTER_ALL_ACCESS;

            iRes = OpenPrinter(printerName, out hPrinter, printerDefaults);
            if (iRes == 0)
            {
                Console.WriteLine("[-] OpenPrinter failed: {0}", Marshal.GetLastWin32Error());
                return(false);
            }

            iRes = SetPrinter(hPrinter, 0, IntPtr.Zero, state);
            if (iRes == 0)
            {
                Console.WriteLine("[-] SetPrinter failed: {0}", Marshal.GetLastWin32Error());
                ClosePrinter(hPrinter);
                return(false);
            }

            ClosePrinter(hPrinter);
            return(true);
        }
Esempio n. 2
0
 private static extern int SetPrinter(
     IntPtr hPrinter,
     uint Level,
     IntPtr pPrinter,
     PRINTER_CONTROL Command);