/// <summary> /// Get the PrintQueue from the PrinterName /// </summary> /// <param name="printerName"></param> /// <returns></returns> PrintQueue FindPrintQueue(string printerName) { EnumeratedPrintQueueTypes[] flag = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; PrintQueueIndexedProperty[] pArray = new PrintQueueIndexedProperty[2]; pArray[1] = PrintQueueIndexedProperty.QueueAttributes; new PrintingPermission(PrintingPermissionLevel.DefaultPrinting).Assert(); try { using (LocalPrintServer s = new LocalPrintServer()) { foreach (PrintQueue q in s.GetPrintQueues(pArray, flag)) { if (printerName.Equals(q.FullName, StringComparison.OrdinalIgnoreCase)) { q.InPartialTrust = true; return(q); } } } } finally { CodeAccessPermission.RevertAssert(); } return(null); }
AcquirePrintQueue( string printerName ) { PrintQueue printQueue = null; EnumeratedPrintQueueTypes[] types = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; // // This forces us to acquire the cached version of the print queues. // This theoretically should prevent crashing in the printing system // since all it is doing is reading the registry. // PrintQueueIndexedProperty[] props = new PrintQueueIndexedProperty[] { PrintQueueIndexedProperty.Name, PrintQueueIndexedProperty.QueueAttributes }; SystemDrawingHelper.NewDefaultPrintingPermission().Assert(); //BlessedAssert try { // // Get the PrintQueue instance for the printer // using (LocalPrintServer server = new LocalPrintServer()) { foreach (PrintQueue queue in server.GetPrintQueues(props, types)) { if (printerName.Equals(queue.FullName, StringComparison.OrdinalIgnoreCase)) { printQueue = queue; break; } } } if (printQueue != null) { printQueue.InPartialTrust = true; } } finally { CodeAccessPermission.RevertAssert(); } return(printQueue); }
private PrintQueue AcquirePrintQueue(string printerName) { PrintQueue printQueue = null; EnumeratedPrintQueueTypes[] enumerationFlag = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; PrintQueueIndexedProperty[] propertiesFilter = new PrintQueueIndexedProperty[] { PrintQueueIndexedProperty.Name, PrintQueueIndexedProperty.QueueAttributes }; SystemDrawingHelper.NewDefaultPrintingPermission().Assert(); try { using (LocalPrintServer localPrintServer = new LocalPrintServer()) { foreach (PrintQueue printQueue2 in localPrintServer.GetPrintQueues(propertiesFilter, enumerationFlag)) { if (printerName.Equals(printQueue2.FullName, StringComparison.OrdinalIgnoreCase)) { printQueue = printQueue2; break; } } } if (printQueue != null) { printQueue.InPartialTrust = true; } } finally { CodeAccessPermission.RevertAssert(); } return(printQueue); }
AcquirePrintQueue( string printerName ) { PrintQueue printQueue = null; EnumeratedPrintQueueTypes[] types = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; // // This forces us to acquire the cached version of the print queues. // This theoretically should prevent crashing in the printing system // since all it is doing is reading the registry. // PrintQueueIndexedProperty[] props = new PrintQueueIndexedProperty[] { PrintQueueIndexedProperty.Name, PrintQueueIndexedProperty.QueueAttributes }; (new PrintingPermission(PrintingPermissionLevel.DefaultPrinting)).Assert(); //BlessedAssert try { // // Get the PrintQueue instance for the printer // using (LocalPrintServer server = new LocalPrintServer()) { foreach (PrintQueue queue in server.GetPrintQueues(props, types)) { if (printerName.Equals(queue.FullName, StringComparison.OrdinalIgnoreCase)) { printQueue = queue; break; } } } if (printQueue != null) { printQueue.InPartialTrust = true; } } finally { PrintingPermission.RevertAssert(); } return printQueue; }
/// <summary> /// Get the PrintQueue from the PrinterName /// </summary> /// <param name="printerName"></param> /// <returns></returns> PrintQueue FindPrintQueue(string printerName) { EnumeratedPrintQueueTypes[] flag = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; PrintQueueIndexedProperty[] pArray = new PrintQueueIndexedProperty[2]; pArray[1] = PrintQueueIndexedProperty.QueueAttributes; new PrintingPermission(PrintingPermissionLevel.DefaultPrinting).Assert(); try { using (LocalPrintServer s = new LocalPrintServer()) { foreach (PrintQueue q in s.GetPrintQueues(pArray, flag)) { if (printerName.Equals(q.FullName, StringComparison.OrdinalIgnoreCase)) { q.InPartialTrust = true; return q; } } } } finally { CodeAccessPermission.RevertAssert(); } return null; }