public void AbrirGaveta() { try { byte[] comandos = null; switch (printerdriver.impressoraModelo) { case (byte)ImpressoraModelo.EPSON: comandos = new byte[5] { 0x1B, 0x70, 0x00, 0x0A, 0x64 }; break; case (byte)ImpressoraModelo.BEMATECH: comandos = new byte[5] { 0x1B, 0x70, 0x00, 0x0A, 0x64 }; break; case (byte)ImpressoraModelo.DARUMA: comandos = new byte[2] { 0x1B, 0x70 }; break; case (byte)ImpressoraModelo.ELGIN: comandos = new byte[5] { 0x1B, 0x70, 0x00, 0x0A, 0x64 }; break; default: break; } IntPtr unmanagedPointer = Marshal.AllocHGlobal(comandos.Length); Marshal.Copy(comandos, 0, unmanagedPointer, comandos.Length); Int32 dwCount = comandos.Length; PrinterService.SendBytesToPrinter(printerdriver.DeviceName, "", unmanagedPointer, dwCount); Marshal.FreeCoTaskMem(unmanagedPointer); } catch (Exception ex) { throw new Exception(ex.Message); } }